{"_id":"@atlas-engine/atlas_engine_sdk","_rev":"1209-6a0491fa20ae92974ed7bfde8872ef12","name":"@atlas-engine/atlas_engine_sdk","dist-tags":{"latest":"3.3.4"},"versions":{"1.0.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.1","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f1df82c82b3560694772c741f3d89851f9a2be62","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.1.tgz","fileCount":8,"integrity":"sha512-eBZCrqjpJPylEAKdp1NAvvFUJY5x2wCyUrmVzhethd6VqZcYNv2PH5JbkCa2E6wmu1oVDQMKlW6Ftt4+tTv6qA==","signatures":[{"sig":"MEUCIC3zilTM2KhNIo1xSQlTxSXoNXl/176pfLIxKf4VhD7MAiEA3c2XrEVo14E2I03VkMb1Buva77mJlLvm+SUULrw/oAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftS5oCRA9TVsSAnZWagAA4i4P/1rRwVWYfQa8Yy41xzO/\nepheWUe/QkC7PBRBiJYGgc5Lp4655SJFcA3UET9W7/OsIq9AKaqxFhkMXqo3\ncW59RRaME6ASh2eGY0eQVCEKzMYlOKlPNYfQmXSCq0UQOk80Ejs1OVGn5Bnj\nZBpi8MQFlglGc9vmrEaP2+si+nWvOfxB5S9LV+Cr4g4K1PGBtElJrVLQgEyD\niZ5XOdF3Xr6wxjSgxgb2ZZXyCJhJJa0ud3aP56DU6vRu1zJQCCiAQqY8d/ZT\n46QE5lo7FYE4S8fkhfEM59DYOz6NFMaSoK25KgiuEzmwr3PUCckdiu35YAeg\nfYoZdRzsVrlDT4vztaW1ZZbsT2VRlBNzpOHknCS3Gy2mwqI6kMZ4LjYoYTvQ\nMtUTh8fVqf9xHoLoEMc1NPVQJBYkZTox0H01iVGkd4V+R3ITkK1Vha6D99+Q\nayjy054H8xC8iMEOXNVBgChfw+xztjuwP//QVpVvwGSNEucXcCQ7wvRRo+6d\nKwLut5VCgC0NOJBdQx9B05e6pZr/AOcUCKTOyEkRZjO9nR7JJq29Q7eRg7QS\nZ0N09cbN7E4zfZuSgC11AadRVSwfm3/v2H/UsxAqhNXff66YxHPxTygW5f6p\nYZPnPcaxYo74rS2PKacZSj9h5QinVjoO+xG+yPB9gAfVJl0jlU7xedPjMr7U\nSzxU\r\n=jSrx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"14655d89ae6c45b037b99dd598c814f397fee953","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.18.4","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.1_1605709416281_0.4353246785650875","host":"s3://npm-registry-packages"}},"1.0.0-feature-14655d-khnhxnmb":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-14655d-khnhxnmb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-14655d-khnhxnmb","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"de828535dc174ba37d8cb2d196865644d555bcff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-14655d-khnhxnmb.tgz","fileCount":8,"integrity":"sha512-wvPoVXtDtutBfplJWnAKW+JHu3koYSIdEds9CzDOy62CEN02tip6kVvxCUZ40M2gNAtlvEgyB1a8RD1d5gN5wQ==","signatures":[{"sig":"MEYCIQDsHq0cMHXyab3yhIGs6Li5t9mpGCgbcb+qeUMtcxEJcgIhAIio0n8lH76Jr80LD62AaTKB2FtiU1StF74GJVB/J0hA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftS6BCRA9TVsSAnZWagAAoaUP/15vcrfhyfpp4cpRVBh2\nx55I3nurXT7Hg3gQ554czL123ivLqtGKrsmqZp6Eps/Afgy8z96LHCPCBEEx\nekhHyXXHL4AZW3HaT8JB2iO2ioCgqsb66Z23H7U4/wX0oe+WQiA0YySCTGXe\nAq2W9KTw/jq/9BF+V7yC1k5biJ4c+LLIM110zgb67NTcKEv1Tpbk5DjUS1kH\n0uz8cUUbO0dRg8aV0Uka5BNWtoKYm6eD3Duwb1/xz3fR8gjlZ4Twqm7hW6cK\naiRaQmlwObzkHQXzI2s8HxpIH1gWQVlOQywUAye/RCSCxmPXYtJdPZFzvZfx\nAluz1YHkI7cGGSFwrOrGmDorFtJuw4zo0rm65P1guhkfIUbmKuk+l/brv1v+\nxS7a/7mXrp+wpul/Vx6wKwgWkT7mewubvYpaEHzdLteIduz4YNX61OHQcwqG\niOdAdvu3kdHro8MUjmZVjFyGAaayLCkTVZedntclwkqJQESNvvP2cOU9PxkT\n8yKqISjsXNQ6xeBkecM0tQOgeW+roFaLaqGLObvtvUilTuC/OVPjFgUKeDTE\nUyRw9FnsYTdsVJU3AsrEJ/R8DaLIuVaxiWK6IZ26++xaDXeQx1tebv1rlfP9\nXDOzatjLtZoSV6vrHuI9VlvX1ucROHwJ9Nv7VM2bM4/T6Q2IEpUwRwGrYAqI\nwixW\r\n=VUph\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"14655d89ae6c45b037b99dd598c814f397fee953","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-14655d-khnhxnmb_1605709440882_0.4410890562023164","host":"s3://npm-registry-packages"}},"1.0.0-feature-c31235-khnigss6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-c31235-khnigss6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-c31235-khnigss6","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8b8c6d91b2a8c98e95684b0b18cf5f9acafe4188","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-c31235-khnigss6.tgz","fileCount":8,"integrity":"sha512-24wW6ppgNRnOEYFHsadipK4DtsFGlmnBuS+CXND8gIw9MXyrB+8ToVTtyz2Z/lkfx2epjieLrJEqpRLhl3bW5w==","signatures":[{"sig":"MEUCIQCXiNvTVRfJU32CwQB33qY5cTXx85RkdY/6U4dMzOqxBQIgSIMnYCF+y+VjvljrzGd2bDfh7OlMWyhOPrZLGWZFDM8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftTH9CRA9TVsSAnZWagAASAUP/j1D3ZPKSfWC8itIivCD\nt1KC5qg6jZCSIsOvyw7FyV1Z/i0T32aiPssrZIonxNTEAiV69uik9DHsoBeE\n7BF0NsVeBamZkB2qo3fC7qsCl7Bc05VefzT1+nw0FdGr0fD76gZ4aoaqg+FO\nRAelQcofXnxvmOU7+DPcHqr68DzO4wI9E1exb4ZVEYGIZ2SzsdDASNUikVAD\ntFxxyakYgAxh6uz/J1DyyejsiePq21Wgrw+cemKBJVwu54Ec0CTc/i/5FZx4\nods5KYcL+OVPDHhpV6ARTwDtEsInLdCa3LBT3ZY/PaZoYS3oM2IGVTRv9fNX\nLdJsV+Zkx7aftw9fs+QSm6vbBq2bY1MbgNV9OcYaPeLwk2uA9OFyLsDHy2Rc\nEiX/Rv3cE6bmCkn2R7YooUWMIDLUgQ0wROpKrDIgtaqnd4WVHLMN9AUqwJlb\nPnUJLK10owipIJiXkeN2ofulQdquemn4bNxtR2JE2vICLZGSe8E8VAA7U+Yy\nEJoZnbNd+dr3Wy5THNTtUJnZhGXGBKEGg4gNsZwRpqfbEmUiVjf2YcKjg5dw\nE8wFddIuQvZgAlMf60Hx/LKJyZeskZ7Y06jpWB43+sawrANhrk4Pb5Ye82pp\naDYWygkH2T6qr6J3dxS7OAPKOamF4I4pjtQRRVX61+2NhB6CSCuUkHT+WVI5\nU+V2\r\n=UnH2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"c312359df2a2ac4e99106aa1d6afaac718c7d0e5","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-c31235-khnigss6_1605710333086_0.6820231972028412","host":"s3://npm-registry-packages"}},"1.0.0-feature-ce17fb-khnin90v":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-ce17fb-khnin90v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-ce17fb-khnin90v","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"30236122fc135f095e266c94de8b232946295b71","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-ce17fb-khnin90v.tgz","fileCount":8,"integrity":"sha512-S7yjqxrOchpG0d62WhKb/r2d9pBWOGx3g3BwRoF6vs6hYT8kzPxeNti5Nmp/JEw1pJe8Fkq3cYaoZzeQu4gelw==","signatures":[{"sig":"MEYCIQDiz09aunFbyc8f5Qppq6cu90Nd/xK+e+QGJPq/w/dr0wIhAMrgSE1UlCboc80EcVMRnFYRb00c/lFJHnfx08hmqckU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftTMsCRA9TVsSAnZWagAASSAP/299Ewr/P2+0y7NvVQrr\nyW6ZiC7v68flspH/XDrEYsdUalhZQ5jv1Y2KSJjWDW/bETMlq5tR025wiXSF\nndGxJHqHUQi6h2fzDae4EWr2wBA7yjmUDChNRrynwadw1eiuFZOzC6T6NtSN\nWsBfRiZUzR3TieGnsCJCi//auzftibY7SCfeBxmVD5b+9C4lM/t3ZvbbbqDD\nT6dx7gfUfalihcsGR50w2hGNpMJ+HgkKJq72PaIqrbXWn0GtnhuQUxGml4XZ\nU2ml9N7402DEd7ns/cCfBhXifxZ+h3jo4BosaKMNPi0VZM60uLJrfiewRZfi\nd/XK7GF2dnU+G44u3TKCr8yJ7IOdJIQaXFC1WPC7W64xhXLRYY8HaKHZf8D4\nMqBRci5MH9EkgwMbOh156RW4LEFywma/w3zoxCnFvhYF/CIYiMA5+bHYWPgf\nqpW+9Xq1LDbXpEMxbrENj9i2jb+hjLm+lpuBsKKkh5aL23pNgw6S//yd+yuM\necvqUSaPWoEvLCrfFqrIS44z50zP3p1+3MzrfGWYpgLitD7cIY1YqmjDuHxW\nPOQbplvoSpzeIhWc5YB8Wwswkp4Vfp+ujt4KqSHueFMatTVy1Sh6ZwfF16Uh\n74VO3iB/jiBp/Rl/+hOq/60WRjX0Q39pRRmlsmtJPwkfuKvcC+HyHRUwK4sC\nXSZ7\r\n=D/Rb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"ce17fb2e8bf63ab0c48626fed4c7a2b334eca24b","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-ce17fb-khnin90v_1605710636112_0.03184445212771725","host":"s3://npm-registry-packages"}},"1.0.0-feature-c4bd62-khnjycsz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-c4bd62-khnjycsz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-c4bd62-khnjycsz","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"48ac6133c1334f868233dd0b46935ab95f6d8d4c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-c4bd62-khnjycsz.tgz","fileCount":8,"integrity":"sha512-/mT135IqGgkyL8rS7IjnBUg1s3YuAfVpwa/YJtPKeaIYobxHZE6+r9GsXdibRGsQjyOsX6QSKxT4wOvAj4x+Gw==","signatures":[{"sig":"MEQCIHrBkAN2jGJRtRKJdTxHofBRZytyr31kKLuEPP+sve/sAiBvzoetGoyk7CYRpJDKBkJxU2Z2DPXoBR7ULoO69dP6/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftTvBCRA9TVsSAnZWagAAg8QQAJ9faywhFLNu8OlZ2uCy\naEtYRsvNVt0vGnFlx4wMXVUSpUsRxVv04SFQ3TncMW326cRWiYF4W/nszWNT\nfvBFlxlYtygC9WdUjdvX/yRimzoBWcttQo85pWa7iKLdIkmnwVbAiDwnXeky\nrH6rRKGIsCV83gPuNl099p4tW8/mY/ofw8FcYHQLJFBijqreHF6sD0Uh8Ksk\nyVmD0YqzZCGp1yoRF6yX9hr/p4KNkBu9B71hMJ6Hj3FjLo5KpG+wqVWnz7y2\nXecFEv2EiEonJPRbQj2nh/RPknO1cIsWM7Ciaeb6BxYhLEJaupp73RrNbO3X\nq4GSK0t1KpEtgRp9KQ0kuFYt2nwID+f6C2JyX3oAfIZCoKbM6cUQ7V7E0q26\nMqyjX3WxfxkgAcBAow885N59cMRvz8zSErJUua/x5kcX9bdntEYPmP0uisFD\nbAectrEbvRmTe5ektM/0oMwXwZFf3nSDIKsKrgylm6TjNYRwP7itm78YTTPE\nyUlP1qa9cw7Am4Bie2OAGwx5/Oskllnr49GKXTLatnlwlFnzEMd2ESUCzHzm\nzBwsQVfgTBBxVW/xCoNeHDnrP0nLUR6qTCl8W2p9Qw7DjUMwKdnrwiBOIHMQ\n7FYGuQ7IesQuGYfGBu0TaVeHuc2qcBuiLMV3aLEXTAmm8lydwfe3LJxwsaKD\nQSt/\r\n=rvC5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"c4bd6215893933c8138ce37f9f6e9758bf063107","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-c4bd62-khnjycsz_1605712833435_0.25095500989735564","host":"s3://npm-registry-packages"}},"1.0.0-feature-95bd77-khnjz5dy":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-95bd77-khnjz5dy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-95bd77-khnjz5dy","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"90b969f30a40a750e309772d1d91bab6ce972aeb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-95bd77-khnjz5dy.tgz","fileCount":8,"integrity":"sha512-LEO3yBs/FoI28r6J1cNA2jsebsv5rswAUJ5Naj8yy9w/w7trAEAfp1WNVTnK/ild0Jm3inCdyjf8FxZUF59dQA==","signatures":[{"sig":"MEUCIQCZTSbeW7oeDxOOhP/LmciVtkoFx6Wp5o6tzw6cZBkngAIgeTDLgOLYKmdQW3NYlLx1dml8nuYYcEZMwty2d4ovQSw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftTvmCRA9TVsSAnZWagAALJIQAIamNQBkelw8tekwAksF\niTeusH/vsBSYg9DO3zoAgHVyM0uRadYhYmqGKJzIKoYREiKGVuDArRmON+Dp\nsGNuNz/nPcQ7vfHgQtjFMl1SRipeKpxjxcutMZT+NgcCVArnp/uTn1lYEIQw\nagLd9OYMGyasTxxD7sKgGa76/iF+b/Dv50ddMIHoeDANUJWtsU/E4B5EbU0r\n1nZbeEDZcqKnppQ/WjtDBwipECnUiLdm2HmmWmkaKPK5GEHKTC+UgSgWd78N\nnLZPPe2AIQEqBaQYNnixhH/i9sdxAQCkQuSlpOWiJBg4zYpzsLv8Q6HzP9cg\nRnuLMHH0wGmbwj1cY/1TyD21mBYeRGheJSjPYBrc4MyoTknF+mRQMNXxVD0m\n7JE52m1+XNBdXnv+Xo33RlJBAw6TPeIT8pwKgxxd0/u+9TZ80ARBh9tzNG4O\nUUayEQmf0JR6qL78cdK+jRMXNo1WIEtGdRonf1DV7GyHV80JMmjSJyju7mmu\nPGhZ5IDc/xFKMA15lxtv0LI1FnIHR2K5JtDAWrh+vwwcwHA9Pl/eGthMi28F\nttz5D/MfWG3LLlr10CuxXmkL2bazrpfd3i8ZR0EKLX4jyuyVnvcYdTW5tHmv\nJ8W6rBFlCunLLwPfVCDhCzTJVAB3zw6AaW8VDSKHcAoiUlyEVK4VXqihfLG3\nNWkt\r\n=5wq4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"95bd771f3852c085c22905d91fbe1cc4473990bb","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-95bd77-khnjz5dy_1605712869616_0.9896634576599306","host":"s3://npm-registry-packages"}},"1.0.0-feature-51c958-khnkhqr1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-51c958-khnkhqr1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-51c958-khnkhqr1","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f72ef99359fa3287c780c90af1be7ef2695ad13a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-51c958-khnkhqr1.tgz","fileCount":10,"integrity":"sha512-1aiz9zRHRd6YK4K9Tt6YlHfWMwrveonOxP3WX0dpeXdcdNhxEbigEnkj8yrqVEqpwmiFxgW0K7ifyx2BXnrK6w==","signatures":[{"sig":"MEUCIQCiyGFw+PLpSwUwkoH09AOpVHb+52JyBKE1FqnzGKWkJwIgMEh6laRu4Hq1BviCvO+BCugE9DD+ngB/paP1ThTZcMw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftT9KCRA9TVsSAnZWagAAO4kP+wX8fC88NcdHqFHlPyBp\nR+anS70wyryDKxNwpHnqSe2iX4ONU4xUJoL94exX6Pg6QIJSJkleAYTvpaTd\nJ4t573NydKU6khWY3rrrXUxTO1BDBwzMeV8n0vGELEWFCdL4WkE8rwVe3vnX\nQPBfIdehtkcLNyRIQij6Dc/FiDTc5jcGtodWIAcCXdq5RmK04JWIfoL957HX\nNlTbOl1xjm9mCH65807uhDIw/wUREYS7aNM27O0NXwtljApDmiFr4GvZDLn6\nYj9g0O/iec1d4kWKfwk0XqlU98hqKIh8zk90rPs0e+joICMLjnlPTEd8bFeb\nyzu+tzIm5EpuDQpFQmUGk3K1jXy9/qZEZTpvJRQc1qRhDe4HCeyHbfGuxkpn\n5wnPGgwepOXZDKFEvStrsQhmtoYIqA4cXOqWsJLN2TN4Sn7ZdC8GGpquRmYx\nyounqycjoxb+hretzHFSJGBTnBknZerhN1VU82cQUjYs7KdoE5rWAC8hqMbn\nITHizMok3pDjvUaoPsZRqTda2VXPOX01mH84zOGCsCf3p64zWfx98KUH7pDP\nJuoF78q1k1+EuVuSEBwa4cDDxR6U7lgIRqPkdNOjshrChrae8qHFQ8ENS75p\nEHrHGgmIS22sWHqmVCM8Si6M1DtuCKMtW6f1LlDTSfeFIB1xbhGEpsF21NEg\nHxt6\r\n=7g0r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"51c9581bcb80d314d2cac7a2a9ac4a6017edd2cf","scripts":{"lint":"eslint src/**/*.ts src/*.ts","test":"echo 'No tests yet.'","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^6.8.0","typescript":"^3.9.7","@types/node":"^12.19.5","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-51c958-khnkhqr1_1605713738068_0.2548715451621333","host":"s3://npm-registry-packages"}},"1.0.0-feature-33233e-khnpl1ql":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-33233e-khnpl1ql","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-33233e-khnpl1ql","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a7f5d28e3b61b1292bf9f8b27d82cc716996c35d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-33233e-khnpl1ql.tgz","fileCount":14,"integrity":"sha512-yXJHy7TsB+xivsQthHrSVJHx+ua8mDTiRi3IzNMS+cUTAYRXSC7m0qWWR22ne1J/jN//SoBy46k4AJe59x3NTA==","signatures":[{"sig":"MEYCIQCA9zWGx8XJkcLxxkaD84U6QNGbeFNF7mJ5wu9Hy/DWgAIhAKbc30lIrHmJZfBiXmPp+QC7ogI2BjyiJgiLA4T9gBGW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":461585,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftWDWCRA9TVsSAnZWagAA7t0QAIlHSU8lyzoPqnOz4T2M\nTWyCGUZmcR604jQE1mlFbdJxCb0B2oNLBw4uah3b6pf7hEhqGn+wInL6MBfe\nkLMdUAbj47hIdn/VF5PM66QWAxN27/MRw6gXHBC3tNQIyxstgfTkjxVYneXn\nEawdFWdt6DvPV2sFjq5sJtkfl/wEipsy6x7V5vh2JoE2ATi5BbmviHNK2sVw\nGGHHeEM9rjp2kX90MfktPOeXlW4J+oK4R8zvZX92OgEVu8mm6eZrAe7kqkUs\nyFhMV+dapzBiVXSJIYd2/hx7AJZUT1s5FZ6bn8cyXOpSwXZtAzGSSCcGsBhz\nPwhNfgNJyenWHdo7bbISvS2ISY9WUl7menwGLdmyi8wfWqr5jFak1mlE+Y68\nXYrDJUrd+TtKW06WAAl9lsh3lsKbyIBygcPGQEiHANf9jJJogpfrG6woTqtk\nIsSjfkAFvVm1SiTzCEO1MItSxIkK3FBdq3+0zVOdPT/7BiP58xx26yyGny7T\n6zQCT1fLXv/X1zAtVjqTX+n6AbbvMyib1PKrg4j5xBhnHdCmTSB6MGeKz3B3\nyG4C4MYPajcgCyZyLCSIcAHr89NIAJV2aE8s9haHrw8fwyUuym6ixeQN1y2j\nWfWmgZJkZAAQtkULukAI2Lu0co4NwP/NOVUQ+oLrg+br+X6kxQ3jvlGKoy3p\nmFUK\r\n=vNk5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n","gitHead":"33233e7bf6bcfff9d0ebb44ff3688da86a5a70d8","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 0 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-33233e-khnpl1ql_1605722325960_0.308150919628009","host":"s3://npm-registry-packages"}},"1.0.0-feature-12366c-khonva5o":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-12366c-khonva5o","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-12366c-khonva5o","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"40da1c5f704c7088df0d8fe0af5a2b44face074d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-12366c-khonva5o.tgz","fileCount":14,"integrity":"sha512-+ioHNpYNpaTRzB63VYrRsQN525cgoof96/clDmy69vOO6LAe1NTQToNKjaxoZyl1VTVjn2Sy1nIr3VwVlwsdNQ==","signatures":[{"sig":"MEUCICLybcnSsnjVBtn7cWgXwmrLzooaUdLCq13/wsgBfZlgAiEAy3jqc9oPTcz9y1UNvnchq7FcPuaFz6UezlVKAxGgYgo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":467312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftkHTCRA9TVsSAnZWagAA5jEP/2PxXYWV6p5EuObjFtgK\nbTEnMJxeWax/6WyTH79R3jOjWkwObh+jepnBQwoStauN/ktZj6q4WiN4GGJm\n2zYL+HL/K6nEZelgVtrUdiQRvW+itlRnFhcNmTDrWCF2VP1nb1nmW2Ujb3uX\na7bKYGQm8U2S93bB0lW5EIIgx9gS43dkF7NZAPfQl+bS182a31+05bWO+tVW\n7kojtZYwyF3bwXggGgRV8zqJA+obbhzD03nDFgiHpcZxasq9TknoMF9QwAuw\neG2jhn5iZbLSTu5MZYbrJOggxwoqRO6ku3x+PQRKzSfsosbmiVV8cbm6bHLR\n3p0eGTUK8c49vSeVBPwGA32FoQc6eeP9KKTCTC0JtKKlO4mmzLbJ+rFwP22P\n/0Fb243ZHs8DtLeS2olBgmGNh3P/s3F8B17a2LAF5f7BYpr6sxvGyjTmx9UQ\np0iFWdyLDYphEZQK5KlMlVYAwupTx3D14HkbndR+ORkk5xyEk3Or2opuqizd\nhSRbnloPrpXurTjKrLeAkHpFhk8TBWqWPV4/d543ENXHsMz5AtqRyrGUmBFR\nkx4rRX3ATEK1pqbTFv0anjJUs82jApKl7EfO8hpMbaWZkpZ1TuHdU71xhzvv\nR7a/vuJTI56vMX4tiwdzopvzy6AhbB5xHkZoZltjZCyiqJ8P2yWEKuo5AnC6\nwLPB\r\n=X1E9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\n## Extensions\n\nDie Atlas Engine bietet einen Mechanismus an, um interne Funktionalitäten mithilfe von Extensions zu erweitern.\n\n### Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung einer Extension in TypeScript zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Finished loading.\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#das-atlas-engine-objekt), die für jedes Event den Event-Typ in den Log schreibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\n2020-11-19T09:31:46.628Z - info: [atlasengine:extension:sample] Received event OnFlowNodeEntered\n2020-11-19T09:31:46.634Z - info: [atlasengine:extension:sample] Received event OnFlowNodeExited\n2020-11-19T09:31:46.641Z - info: [atlasengine:extension:sample] Received event OnProcessFinished\n```\n\n### Laden von Extensions\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\nInnerhalb des `extensionsDir` werden Extensions als Ordner erwartet.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   ├── node_modules\n│   ├── package-lock.json\n│   └── package.json\n└── extension02\n    ├── index.js\n    ├── node_modules\n    ├── package-lock.json\n    └── package.json\n```\n\n### Struktureller Aufbau einer Extension\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/package.json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\"\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, die als Einstiegspunkt zum Laden der Extension verwendet werden kann.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/index.js \nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n}\n```\n\nExtensions können eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem [Atlas-Engine-Objekt](#das-atlas-engine-objekt) aufgerufen wird.\n\n```js\nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n\n  return Promise.resolve();\n};\n```\n\n### Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n### Das Atlas-Engine-Objekt\n\nAuf dem Atlas-Engine-Objekt werden verschiedene Funktionen bereitgestellt, die eine Interaktion mit der Engine ermöglichen.\n\n#### registerEventMiddleware\n\nMit `registerEventMiddleware` kann sich eine Extensions als Middleware für Atlas-Engine-Events registrieren. Der Funktion wird eine callback-Funktion übergeben,\ndie jedes Mal mit dem aktuellem AtlasEngineEvent aufgerufen wird, wenn in der Engine ein Log-Event auftritt:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  // Jedes Log-Event das auftritt ruft die Funktion mit dem aktuellem Event auf\n  logger.info(`Received event ${event.eventType}`);\n\n  return Promise.resolve();\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n### Logging\n\nDamit das Logging der Extension einheitlich zu dem Log der Atlas Engine passt, empfiehlt es sich den Logger `loggerhytm` zu verwenden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Beim Erstellen des Loggers kann ein Namespace angegeben werden, der beim Logging verwendet wird.\n// sample sollte durch den Namen der Extension ersetzt werden\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n\n  return Promise.resolve();\n};\n```","gitHead":"12366c8531726f76066384c8edc76879bd5ea2ed","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 0 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-12366c-khonva5o_1605779922856_0.056878674012484476","host":"s3://npm-registry-packages"}},"1.0.0-feature-03128b-khoo52j1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-03128b-khoo52j1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-03128b-khoo52j1","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6a8352faa70563105782a2e1ab79a9655c1c8f4f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-03128b-khoo52j1.tgz","fileCount":14,"integrity":"sha512-fJzv/iAMPOyzn8YnfImYbbkRuOM3S2n3Z9WQDeBGgUPR25SYHjuPXT5ilPxP+JNC3Xwu64SanRZLhs71mYzo2g==","signatures":[{"sig":"MEYCIQCZlvp1NLpfT0SvnPnwoyE/cVY9Z9LZhstF3sAJLnJIpwIhAPk+3b+Glzds+ZrY1SDq+ZfGQp1tKxM3S7++kfanAFIl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":467312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftkOICRA9TVsSAnZWagAAdXkP/292151Lrm11JNrCpGJ6\nVwY8xn/r5G41bcfjxDa+vr7E0JBKXF4lWqPPY9q/1StQL+FWUkdMYPRTjiRZ\nuMmq2xLQAXDOKPCRON7UIDT4/ANfXjLQ6+/wNiiI93p8A2n9IRnlzP+c4ycp\n5e92+a4aqz3pWpe5RhQ/NWEMFzUtGWZD/0cBf8QXlePqdshE16aswSLyUtiH\nEpU6KwKs/up6A2NYrjr7YMNWOKwCzARO35i0Ybao5fnbOOzmxxlAzLG3whEK\ngrtvNmdaAvKGQh8PYCHxkrSGJ+xa+0nUSYlnhc7n9Kxz0cY8+qv+vuzafiQu\n8kJAp17cM3bsO28ec9WjvnM1gR8tDWKTzhHxOheSF4yZME7dIqZKx9jJYkt0\ncL44i02g3IvPzWnokmBRqa5BvqyNKWrZsa4tZCSf7rKmNtRXoBPnpCdKME7g\nISS9g0//vqusTcJ6bC7DxMoSWR04yT1+phRkBL59BKvU940D5mFrehN4mFqc\nIp/HPkM7ktzS+qnAmf4foBQKM+5phdmh/nqN4Lu9USVHj6Gk9nlrKCnNEQ41\nK581WDJNECHv3HPB6BxKfcIxt/8M/o2deriRSwXb0fMA1k/AUv4qOKNM/Q0r\nzrz9RNpFBeU9qsXd7QaTAlDuLk4XR6giGw6HvduHrINNxUNBzlmV3muQWOCs\ng15L\r\n=9hdB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\n## Extensions\n\nDie Atlas Engine bietet einen Mechanismus an, um interne Funktionalitäten mithilfe von Extensions zu erweitern.\n\n### Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung einer Extension in TypeScript zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Finished loading.\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#das-atlas-engine-objekt), die für jedes Event den Event-Typ in den Log schreibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\n2020-11-19T09:31:46.628Z - info: [atlasengine:extension:sample] Received event OnFlowNodeEntered\n2020-11-19T09:31:46.634Z - info: [atlasengine:extension:sample] Received event OnFlowNodeExited\n2020-11-19T09:31:46.641Z - info: [atlasengine:extension:sample] Received event OnProcessFinished\n```\n\n### Laden von Extensions\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\nInnerhalb des `extensionsDir` werden Extensions als Ordner erwartet.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   ├── node_modules\n│   ├── package-lock.json\n│   └── package.json\n└── extension02\n    ├── index.js\n    ├── node_modules\n    ├── package-lock.json\n    └── package.json\n```\n\n### Struktureller Aufbau einer Extension\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/package.json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\"\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, die als Einstiegspunkt zum Laden der Extension verwendet werden kann.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/index.js \nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n}\n```\n\nExtensions können eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem [Atlas-Engine-Objekt](#das-atlas-engine-objekt) aufgerufen wird.\n\n```js\nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n\n  return Promise.resolve();\n};\n```\n\n### Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n### Das Atlas-Engine-Objekt\n\nAuf dem Atlas-Engine-Objekt werden verschiedene Funktionen bereitgestellt, die eine Interaktion mit der Engine ermöglichen.\n\n#### registerEventMiddleware\n\nMit `registerEventMiddleware` kann sich eine Extensions als Middleware für Atlas-Engine-Events registrieren. Der Funktion wird eine callback-Funktion übergeben,\ndie jedes Mal mit dem aktuellem AtlasEngineEvent aufgerufen wird, wenn in der Engine ein Log-Event auftritt:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  // Jedes Log-Event das auftritt ruft die Funktion mit dem aktuellem Event auf\n  logger.info(`Received event ${event.eventType}`);\n\n  return Promise.resolve();\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n### Logging\n\nDamit das Logging der Extension einheitlich zu dem Log der Atlas Engine passt, empfiehlt es sich den Logger `loggerhytm` zu verwenden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Beim Erstellen des Loggers kann ein Namespace angegeben werden, der beim Logging verwendet wird.\n// sample sollte durch den Namen der Extension ersetzt werden\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n\n  return Promise.resolve();\n};\n```","gitHead":"03128b3005dc456a1cf1de99c1a018075e9a0a4d","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 0 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-03128b-khoo52j1_1605780360157_0.06659523668785017","host":"s3://npm-registry-packages"}},"1.0.0-feature-63b8b1-khoonp85":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-63b8b1-khoonp85","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-63b8b1-khoonp85","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"01c17fe9574a3ee46ea6e81b1eba77abe7537334","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-63b8b1-khoonp85.tgz","fileCount":14,"integrity":"sha512-pc1IGC36Stw6melMDZ8jKoJ2SiCwsNHIHRC7f5s9MsvwScR80sX/NR9kjgi+Rqga+JdvHIKxw4PsMykWrqBzcw==","signatures":[{"sig":"MEQCIETlqpvkLm4zi4Ozhu007B7xHiT3D5O8cKwVscF++dB9AiBQ4JV2I6DhPCjcWfo23QEk5OUAWmi3W28KcsYGVzUHgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":467317,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftkb+CRA9TVsSAnZWagAAoywQAJdBnBV4LCE2+BJpXnwX\n5JrodQlI31x6km99WXg+PX7ZPbcWhmZUsB1hgiQ1S0YVSOmGo70gDMaIjJW7\nmrKs2JsDG80mJkGj8SLnXFfJCKYolhbqqd3uWUZdTny3LelFatKOqbc6Q7xi\nZFN4jdUvmw1M4lo/3IQEVft1PKBNIpWOLbbaGqvr2X94wecw/0JRmtE81CEd\nfnJp2Do3Dh6QSFI3fdPibCzeLHscUlnlwc3SX4V5CrP0a9t1vdq8yQLaWvnQ\nC6B1UZlfK1xwZsk5rPAwEa4smv28Jr1ZGde/DF4/fjhyjAXhAG9SulcljGhd\nkAeYZnrzETs7+fYSX+MPie2y4drKPPDR9p59uAvLd9Jl68gLekgxEXbEdeLJ\nTjkhnbHloAYsRHp+pbYS1LAeWB1FER3FDhpXnamuobb14xW9/lhCL4IL8cgT\n5krqTslJHqgfRnLMpBSuz3EOC6BYPrjLJBuia+kQhNotVp52wwiB4hI+sk8y\ncGVJgfCLwo30u6KVSZfIZuvwqdvc0PtCeIMQhkjX38tOHOG2RwnmNcTBOXC5\nJPyqoXYxFn2QKp4DX91sckZSt4OI2XorMB+w4NZ0majNYo+VokHWuAw3F24b\nL0ALgYamWPShD3/b3mhdCa2gwRKHEs6IZQ4fCzAqyyukyTnn7CaSw9xL0TCG\nKAIG\r\n=MEHJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\n## Extensions\n\nDie Atlas Engine bietet einen Mechanismus an, um interne Funktionalitäten mithilfe von Extensions zu erweitern.\n\n### Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung einer Extension in TypeScript zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Finished loading.\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#das-atlas-engine-objekt), die für jedes Event den Event-Typ in den Log schreibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\n2020-11-19T09:31:46.628Z - info: [atlasengine:extension:sample] Received event OnFlowNodeEntered\n2020-11-19T09:31:46.634Z - info: [atlasengine:extension:sample] Received event OnFlowNodeExited\n2020-11-19T09:31:46.641Z - info: [atlasengine:extension:sample] Received event OnProcessFinished\n```\n\n### Laden von Extensions\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\nInnerhalb des `extensionsDir` werden Extensions als Ordner erwartet.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   ├── node_modules\n│   ├── package-lock.json\n│   └── package.json\n└── extension02\n    ├── index.js\n    ├── node_modules\n    ├── package-lock.json\n    └── package.json\n```\n\n### Struktureller Aufbau einer Extension\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/package.json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\"\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, die als Einstiegspunkt zum Laden der Extension verwendet werden kann.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/index.js \nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n}\n```\n\nExtensions können eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem [Atlas-Engine-Objekt](#das-atlas-engine-objekt) aufgerufen wird.\n\n```js\nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n\n  return Promise.resolve();\n};\n```\n\n### Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n### Das Atlas-Engine-Objekt\n\nAuf dem Atlas-Engine-Objekt werden verschiedene Funktionen bereitgestellt, die eine Interaktion mit der Engine ermöglichen.\n\n#### registerEventMiddleware\n\nMit `registerEventMiddleware` kann sich eine Extensions als Middleware für Atlas-Engine-Events registrieren. Der Funktion wird eine callback-Funktion übergeben,\ndie jedes Mal mit dem aktuellem AtlasEngineEvent aufgerufen wird, wenn in der Engine ein Log-Event auftritt:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  // Jedes Log-Event das auftritt ruft die Funktion mit dem aktuellem Event auf\n  logger.info(`Received event ${event.eventType}`);\n\n  return Promise.resolve();\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n### Logging\n\nDamit das Logging der Extension einheitlich zu dem Log der Atlas Engine passt, empfiehlt es sich den Logger `loggerhytm` zu verwenden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Beim Erstellen des Loggers kann ein Namespace angegeben werden, der beim Logging verwendet wird.\n// sample sollte durch den Namen der Extension ersetzt werden\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n\n  return Promise.resolve();\n};\n```","gitHead":"63b8b14e1ba6d3a65f784336e2c737ad27329035","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-63b8b1-khoonp85_1605781245678_0.8780115760646763","host":"s3://npm-registry-packages"}},"1.0.0-feature-ec7512-khoqg1od":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-ec7512-khoqg1od","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-ec7512-khoqg1od","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cc75f21e108a459ff21966e74af16300f5ca5099","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-ec7512-khoqg1od.tgz","fileCount":14,"integrity":"sha512-F8xUqpDTqR+i0Oo754Mev8f9kFvparYSo0/7SF1BuretxVfgD0fK452RcByEdd2sIezN6rOP60jGjj2ACrhpqQ==","signatures":[{"sig":"MEUCIFIcmnzatWrX41OmYiJj4RpTAuxTmdIVUytq4zEIyCWWAiEAu3CKqkn/+8Ghj6vDT7kDQnIfoCdUEfk9ExAbSGB0i5k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":467592,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftlK5CRA9TVsSAnZWagAAN7YQAIxIInZXT8FcrDlnZY3U\nyX55vUs4cHwT8XMD+OO7OLFeeftH/yX6ixe2AILGr0tMW8Tnydnbf+xPc8HG\nNL1weiUZGkwkPiyvi7hW1CF9v6Dc5nlXJmB8IIo4HsIV+v31CYd9X1POy++E\ngYcOcH8MB4MA6B5qRG8dU0YNtyBYaubs6xn0HNlajCAAWk1go66vcUQcfKUM\ng1m54qR5N5FhlC54EMAQVrdzEg+iOR9bhU/+jOZn1KyeWgtO4ICRat1JIUla\nHK3zAnXcidIyOvcKAUBC4kUC1m0nkhA3Ccoy83xX5loKrtwBMPag9ypxTZ4r\nBbovhgM+Tj7upp0DtBqOrtu3XAQv/RWffgqRyZ3H7Vt+BaPI4OLbZOi6WpA2\nQBLL3DWnoY/93yhm2mEMdVlCVdgD+mRBudavHAQgb2zGxWTOKzM0kvBurZxK\n8/M2LOBgEoe2Blasd6y/f5qhs8UI/n3Hfs0AF1BViCPH/kjvYMrib0iGhP7a\n71HlLynmObmqK8boFwtEJtubilQBoesdRqVUOyo90aSVKslrP7HXATrDKBWX\nFvlcAPzrRQ8zUc8nEAX1PSnQREoagx/akp0Tv6r8VxtlmXHBDjS5tmae8qkZ\nwBKfK/FE56u/CRHaGHgg/cstZjet2/VkmC1BQ/apx1IloYrqmBMsAVOV7WgM\n3TQc\r\n=/UYI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\n## Extensions\n\nDie Atlas Engine bietet einen Mechanismus an, um interne Funktionalitäten mithilfe von Extensions zu erweitern.\n\n### Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung einer Extension in TypeScript zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Finished loading.\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#das-atlas-engine-objekt), die für jedes Event den Event-Typ in den Log schreibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\n2020-11-19T09:31:46.628Z - info: [atlasengine:extension:sample] Received event OnFlowNodeEntered\n2020-11-19T09:31:46.634Z - info: [atlasengine:extension:sample] Received event OnFlowNodeExited\n2020-11-19T09:31:46.641Z - info: [atlasengine:extension:sample] Received event OnProcessFinished\n```\n\n### Laden von Extensions\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\nInnerhalb des `extensionsDir` werden Extensions als Ordner erwartet.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   ├── node_modules\n│   ├── package-lock.json\n│   └── package.json\n└── extension02\n    ├── index.js\n    ├── node_modules\n    ├── package-lock.json\n    └── package.json\n```\n\n### Struktureller Aufbau einer Extension\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/package.json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\"\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, die als Einstiegspunkt zum Laden der Extension verwendet werden kann.\n\n```sh\ncat ${HOME}/.atlas/engine/extensions/extension01/index.js \nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n}\n```\n\nExtensions können eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem [Atlas-Engine-Objekt](#das-atlas-engine-objekt) aufgerufen wird.\n\n```js\nexports.onLoad = (engine) => {\n  engine.registerEventMiddleware((event) => {\n    console.log(`${__filename} received event: ${event.eventType}`);\n  });\n\n  return Promise.resolve();\n};\n```\n\n### Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n### Das Atlas-Engine-Objekt\n\nAuf dem Atlas-Engine-Objekt werden verschiedene Funktionen bereitgestellt, die eine Interaktion mit der Engine ermöglichen.\n\n#### registerEventMiddleware\n\nMit `registerEventMiddleware` kann sich eine Extensions als Middleware für Atlas-Engine-Events registrieren. Der Funktion wird eine callback-Funktion übergeben,\ndie jedes Mal mit dem aktuellem AtlasEngineEvent aufgerufen wird, wenn in der Engine ein Log-Event auftritt:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  // Jedes Log-Event das auftritt ruft die Funktion mit dem aktuellem Event auf\n  logger.info(`Received event ${event.eventType}`);\n\n  return Promise.resolve();\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n### Logging\n\nDamit das Logging der Extension einheitlich zu dem Log der Atlas Engine passt, empfiehlt es sich den Logger `loggerhytm` zu verwenden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Beim Erstellen des Loggers kann ein Namespace angegeben werden, der beim Logging verwendet wird.\n// sample sollte durch den Namen der Extension ersetzt werden\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n\n  return Promise.resolve();\n};\n```","gitHead":"ec7512d78b59911c9f0e1f5301839983afdf0401","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-ec7512-khoqg1od_1605784249468_0.22885320704358625","host":"s3://npm-registry-packages"}},"1.0.0-feature-25a0fa-khq1z1ck":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-25a0fa-khq1z1ck","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-25a0fa-khq1z1ck","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"34f685ea34c16ecd3096672e728ccfb3e362da67","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-25a0fa-khq1z1ck.tgz","fileCount":14,"integrity":"sha512-w5dKvZAxIeGlryPWGCLDzmVmqg8ykpWp/1jBsmPWGEIUkhNj1ZQdclgGci+R96Bk+Xoqc64aojOZChx+rp97/w==","signatures":[{"sig":"MEUCIQDLm/HOEHN5p/OnsuLXFUKqNhY3ePBn6ZJUungmMxNKpQIgQriyx8WblDa9tvgs71m7mxIHJ0Ush5445CvYurjorN8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":466918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft4qGCRA9TVsSAnZWagAASsYP/3Ii0iO8gjvr+y1iGzfp\n+hUZpC+gWdZ3APeMi2+hdv6ywH2g/HLDOikV0visxstg510eEXnH/q2To2aC\nfBX6bh0G4hBfxO7CVgJnWERqLsCpOZlPKNVU0s65rXVU0oz9JqOFFRr1hZzP\n83aEsh9y/bUS6vQNmNlOU+cjIbFfh3WmVH5W/TPNwm59L9quqwFOoo1fnX2J\nBRH5uFW1/lHEDLOrzSw2F3jSdoAqBrQJZBwFsUQzoeCh0IYxhCUr3nBUuTfX\nlH1HE4J0SE6pDshViqxdTue/OfGG9+1+wcOusFdhx3jmWA/WSzN6bqakKN//\nNSJWyRSkYmADPG2Fbte0HcG45k+lgRuBmfzdu3yex2BB6UtxZ3QIxPi4K4DD\nhrXO/vAxwSDMzuWfwv/41e23u8SMz2B1WNNOWDe2+348v5shy4hqwc9fNpJi\n00Bdit7bpJdEs2xpZerm+Fe0nityJz3gzCN1QZojSqBgGu8y5okJjMiRR/3V\npjcSEvRiXvPquzye2DIstiEUr5zWHSx4juCEDNPep3CXopa3/hE7vCWhEs1x\nQQlQXz5suPfx/XiUp43Mo4aIrH3NL4kk+ZW1j5gbTkJUrhz6mlenkgrqiGiD\nNxlv/41duzWaKJW2+o/bi37Ooui+ax5IIKhn/To4ymZcCeCCAjSXCT2kqW5F\n4HJe\r\n=IlQd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n## Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Finished loading.\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine), die den Event-Typen von empfangenen Events in auf der Konsole ausgibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\n2020-11-19T09:31:46.628Z - info: [atlasengine:extension:sample] Received event OnFlowNodeEntered\n2020-11-19T09:31:46.634Z - info: [atlasengine:extension:sample] Received event OnFlowNodeExited\n2020-11-19T09:31:46.641Z - info: [atlasengine:extension:sample] Received event OnProcessFinished\n```\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Logging\n\nDamit das Logging der Extension einheitlich zu dem Log der Atlas Engine passt, empfiehlt es sich den Logger `loggerhytm` zu verwenden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Beim Erstellen des Loggers kann ein Namespace angegeben werden, der beim Logging verwendet wird.\n// sample sollte durch den Namen der Extension ersetzt werden\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n\n  return Promise.resolve();\n};\n```","gitHead":"25a0fa56ad121983d91a617bfdfe9ca7fb8e10da","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-25a0fa-khq1z1ck_1605864069800_0.5468592542185728","host":"s3://npm-registry-packages"}},"1.0.0-feature-1bb5ef-khq2ac6h":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-1bb5ef-khq2ac6h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-1bb5ef-khq2ac6h","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7bea50dc7ff3ae6795307dbaa89410b13d95e063","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-1bb5ef-khq2ac6h.tgz","fileCount":14,"integrity":"sha512-nUl9zDs+gP/kfrkJJo5bpdkfa1M073E/YxHdOjsyDM5GYKVg+LXpvO1Lig4f5sbP0EPPQoJBP8DRppUZvOiwJg==","signatures":[{"sig":"MEUCIC98cDsMVCqXtERdhlMsutGV6F0CyIz/wIDNt5HEuFKPAiEAgPnDL2iJ7Yjr/wEihaejhus+UaTdROkLQlDJkyHQqd8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":469634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft4yTCRA9TVsSAnZWagAAo6MQAJpAMWsXoDnRUd1yoMle\nykM68AStpS7yUwv2UvDMbWWkz7vjaI5TbSQScIbJnQQc5bU20kYAtbaadG6o\nrNAdWStmAD4xeS8RL8orpApp2cQ78Rk5tMKRy0lDAi5P+2MotqE5dyB/NQsM\n8Zb9XmShZmLr6ORWoYKxkAWfgqQoLeIshwQJFBTqgTWIlOJAlxEVJmhUiDmU\n+ItjN4x1QoRNu5vJugWPuW5NR4VynHuiDOSU3DqgHDNVQ2qN5v6LHB2FBCiy\n2fy2y7XDFPGXHjK/xdEvOgpPyhiNvgl/ld/orVE/l1m3uQGeUeerc9HPizS5\n0aoLLiFksy6C7PVtq/8NTGqYh7SriyaUY+aVVsqt3NQhgxVo+AGtef2dlqpZ\n/WMrfehNcpcYdLJYhJsZC7WK1Ci4ne921PrYlJ0y0smPx0E7p/vF8VDFpK/t\nVyakAAW1VSD7YwNW6IP/P733rGhoKA3x1ETiy5LrJB2vI19NEDqRRh+Lq/N6\nPStjkRF/mHm9KrI6xdmZ2LbSti0rFDwimLbPAS/iBDfN5wARaVbc2qWUsQ3V\n9IYYudwzUrocVV7c+E190IJCIrxvZOYofCnHTy+CdGBNlVszCN4KhwlU/x1l\n27STOkBxTEbSXBVT9WKJFBnAToleEqWyFnix6tIVGCCjaBw/AiAWleNoQZ04\nbnQl\r\n=9C53\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n## Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension:sample] Finished loading.\n2020-11-19T09:28:49.538Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine), die den Event-Typen von empfangenen Events in auf der Konsole ausgibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\n2020-11-19T09:31:46.628Z - info: [atlasengine:extension:sample] Received event OnFlowNodeEntered\n2020-11-19T09:31:46.634Z - info: [atlasengine:extension:sample] Received event OnFlowNodeExited\n2020-11-19T09:31:46.641Z - info: [atlasengine:extension:sample] Received event OnProcessFinished\n```\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n  return Promise.resolve();\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Logging\n\nDamit das Logging der Extension einheitlich zu dem Log der Atlas Engine passt, empfiehlt es sich den Logger `loggerhytm` zu verwenden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, onLoadFunction} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Beim Erstellen des Loggers kann ein Namespace angegeben werden, der beim Logging verwendet wird.\n// sample sollte durch den Namen der Extension ersetzt werden\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: onLoadFunction = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n\n  return Promise.resolve();\n};\n```","gitHead":"1bb5effde0685907f6d44ebae0595f8cc69399c0","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-1bb5ef-khq2ac6h_1605864595481_0.5677036685435153","host":"s3://npm-registry-packages"}},"1.0.0-feature-22f2d5-khq2jmbt":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-22f2d5-khq2jmbt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-22f2d5-khq2jmbt","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"950612bb4b7a08f7b34f87d91d07b63c5ac2be81","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-22f2d5-khq2jmbt.tgz","fileCount":14,"integrity":"sha512-Y3+Jy+M6W823z+iWDTQXusCNi/kfKu6sQ8Xhr/4mnktKxN6Vpx14nYohrcbBuH7NLldN71vqBFZyq5CtmQTCmw==","signatures":[{"sig":"MEUCIQDp5igT0htJedHgczETrA1tKdXCLKZgrQZvzQqU4eldgQIgX939KZ8+rb9hLJ+veaXG3MCbU6KQZ0Sdd/6g1ua/5go=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":469133,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft45KCRA9TVsSAnZWagAAi5wP/Rk016pqaNYAi1Ki0Y5H\nTuSMnZZfpQJmcADrT35fDMfZWVFo5DpXAmPcoVo7qIQRMFyet5VLgC7hJ08H\njyiqjvryM7hSJErn8oVxoRwzPPcc3CCO71OfURtaNhVui1/7GPMiKZx3vU6/\nW1oX7fnWMOBMnyVQcUNVpZwMTDfPWuFZxZKq8qSRQ2MtQkwsye760bGdfc3t\nSTj3E/BQIiGeY6jzYFLf62Mx5XrCO0ej0nFwUplWdDCbWolsKIBWTNkIVpnM\nXiK91QwEa3y1Xtzt0b+I/VX/ro071wYolIcVK0IGhKgfGKSdD1AVIQnyFkI8\nh+U2rvlWnmnnJ+rUnbQadJ7RqSDhsSbqVOSFqGbKAcpoI70cH9TXODQl9V/S\nOMtylB9cVbyYNYl2WT9QnCyxckmQNsayqwxobbznXhvQofw1KWjKAbbhlvC2\n1RmivHRXHOU1Q6xMvL2Oo2n/Dovxy5NfTY1pL7Iuv4nPTfox8LtclnIgXe6m\n6fIyc8z9Hty+XXZB/XMdkfSkEL9ZyPyY5WtmIg0w4dq114agZKdJPgPscGFU\n3+FTPM6cB/2Fjx6hGGjXe4z3yrpiJgf4bdqPdqytsWlshKP/bVuOpyQLmsv4\nlYpyOAU6fq/EfGMmNiEEBy0JX1JCAcFqpKLYNignlsWlKukTht8kMD65W7/x\nOadK\r\n=Oill\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n## Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\nLoading extension...\nFinished loading.\n2020-11-20T09:33:06.001Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine), die den Event-Typen von empfangenen Events in auf der Konsole ausgibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\nReceived event OnFlowNodeEntered\nReceived event OnFlowNodeExited\nReceived event OnProcessFinished\n```\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Logging\n\nFalls gewünscht kann das Logging der Extension an das Logging der Atlas Engine mithilfe des Loggers `loggerhytm` angeglichen werden.\n\n```sh\nnpm i --save loggerhytm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Der Namespace wird im Log ausgegeben. `sample` könnte hier z.B. durch den Namen der eigenen Extension ersetzt werden.\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n};\n```\n","gitHead":"22f2d57e961c32ad89b31906ab46c83cdf6da762","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-22f2d5-khq2jmbt_1605865034099_0.26397191495800687","host":"s3://npm-registry-packages"}},"1.0.0-feature-8f95b8-khq2p6a8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-8f95b8-khq2p6a8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-8f95b8-khq2p6a8","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0f3ab994be8f88f6b5872363c5fd9da85d697971","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-8f95b8-khq2p6a8.tgz","fileCount":14,"integrity":"sha512-Ug5eIzUsMRDxCTfpAg5BudDR9SmMDq9QKB783dWd1aVcBnMm+UpP15icuWmT3/el4EaD8atl7tbLlvgDeqNCMw==","signatures":[{"sig":"MEQCICmm410qRRMhuowOqg8zQ7662qZ8vZYGyyEeKZHSUeFGAiBj05rEoPhYAPt8+c//hFLB/0PPQW8B3U0Vi3wSUTnsoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":469348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft49ICRA9TVsSAnZWagAAmIEP+wUZH2ZIxa/iVTJPGa01\nXU2NrFYmz25lhPG7AJZv1PO0FQIOdnyF1zY+97PpjAYVVLJl69yhsS4cyaj2\npZ9bV9/6iBPnD1kqMwpmVT694aZNxU8bJmGdxDinvusWDolBq138eMBXcr22\n75MhFZklY3xPYv3/QAQm2p8QVIbgul5bf3yBunHnN2FijLdeEyYzLdRLeJpM\nlxQtvJwh3Zux+lKXFa6CqIHVuT3ckxu2zWdjGakh8qntlQ5kQNDr1YvJGabS\nmFRiAEeDs+uzgIc8R1wc96k4W90rkDVdiUrcMS82oQAUXJEccNTk/Ynrl/bx\n1Q8GYr52Cu0RRvZ/VXG6U1zuqmxFywALrHa65dR6DK0+EN7tBRb+j3lL/wbd\n5aSsd+KnY1ae631Cj83ozqOu5xIZwEZ7tRHlQ25GbK/1uJ3f+oWJtwJ8kg6W\nUFEYSlogzF2t+w+8D9Kzj3gjU9PX3PZ7qqAhUAmFAk+pGkkjOTZHaK8QOxxs\n1t/HtBKTyeDapbpgagHPjo1DQphScPNt8VKTs4qLTLBbwLYvy83wqQY6LAtM\nClUynyLDroD5ybivAlzBE+xlSNsnRdWnC/GOaWwm/SRQpKvF5emFgS45ValR\nVwugGlrfgJIPnWTB8aERQl7f5HOHNG9hl+6VdtlainjZCkrhgLRm/AsN+MAz\nXfT3\r\n=qv2/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\n## Beispiel\n\nUnter `./sample/extension` ist eine Beispiel-Implementierung zu finden.\n\nDiese lässt sich folgendermaßen Starten:\n\n```sh\n# Installieren der abhängigen Pakete\nnpm ci --prefix sample/extension\n# Starten einer Atlas Engine, die als extensionsDir den sample-Ordner verwendet\nnpm start --prefix sample/extension\n```\n\nIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:\n\n```\nLoading extension...\nFinished loading.\n2020-11-20T09:33:06.001Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n\nDie Sample-Extension registriert eine [Event-Middleware](#registereventmiddleware) auf dem [Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine), die den Event-Typen von empfangenen Events in auf der Konsole ausgibt.\nWenn z.B. ein Prozess auf der Engine unter `localhost:8000` gestartet wird, sollte im Log folgendes zu sehen sein:\n\n```\nReceived event OnFlowNodeEntered\nReceived event OnFlowNodeExited\nReceived event OnProcessFinished\n```\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Logging\n\nFalls gewünscht kann das Logging der Extension an das Logging der Atlas Engine mithilfe des Loggers `loggerhythm` angeglichen werden.\n\n```sh\nnpm i --save loggerhythm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Der Namespace wird im Log ausgegeben. `sample` könnte hier z.B. durch den Namen der eigenen Extension ersetzt werden.\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n};\n```\n\nlog output:\n\n```\n2020-11-20T09:38:47.386Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-20T09:38:47.386Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n","gitHead":"8f95b89f4b61ee5dc9e46dcb52e23e6f6dbbce63","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-8f95b8-khq2p6a8_1605865288165_0.9266484037884457","host":"s3://npm-registry-packages"}},"1.0.0-feature-b71224-khq2uncl":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-b71224-khq2uncl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-b71224-khq2uncl","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a408a0ad68357d0cf52c35f9995e955430756e2f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-b71224-khq2uncl.tgz","fileCount":15,"integrity":"sha512-H2UBQVinti/AyKI+6scQeRW5/xS5GibdBPNzWDmVYpHKX5DKj69/zqTtXDrFXk8P4loOqcorUFilDBuvbr3GhA==","signatures":[{"sig":"MEUCIHVnZL3GXrnTKqBHAA8mKnZaP1WmRY4RI8mSd9X5chTdAiEAuqHXO/cOSQUfjJ4ttMDgJT/F+VLXjS7/DkGEE5dXBfo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":469480,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft5BDCRA9TVsSAnZWagAA/zMP/R9HXk7SXIiogYvXpbot\nNMXaVk57Sg2uTsPkVJnSNDqC5q2h5ZwHdzpcJGLifx4XYbpUwD9W1sxYkudy\n9ohxC0rTP9EMDHWn36Mf9HBaoXH3nc2CeKX1y/880klGmshl38bATCmeePWi\nsz5YB/K40g6pxtwc0eVjjf7b1IIYCrDlCeSMNWeIWmS4P459yAfHnexuaYx5\nDY1dRkhnm5iObBTnixaBfm3KPH86lz/El7r50qZnLS0O08qQjvXSyhGsdtl6\n2tFPoDxYp9w/WTNItWA+Obs/WBEjAOAU262TPa/SRULh6U4z09zSkdI5u+dj\n8vVcJYuXnAk/Y0LUyrDDLipqhBTNd+OYNsoK2i8GhUcCvBS+Ynljll7kulpX\n2HiM8VRyFDbuCHUboxhuDRSzHnRJOC0xDDroojRMe/i08q4HPyBleFHFhaT4\nsd1BJrJaXE/OCbxQM7GbysbXg89i2nA3n2Nr6WrfrzYPbYjVFwQqBaE7Jp/T\nWKCoG3xDm1p6qUysyDI6oVNKwvaJQveJkdSbetUwl+khxq0MOM6C3bE7FEyj\nlnIIKFJuK9ImXT16+p8qrL0Ewg3FE7r5Nhad1IBmmPY58VrYJWPSu5IoPWVo\nt05NlelJBTsIxmiyz7FtDcNq+RkfPl7L0VCqTLGI4sUCikpwF1zlFR8/r2kP\nC3WH\r\n=UHu9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Logging\n\nFalls gewünscht kann das Logging der Extension an das Logging der Atlas Engine mithilfe des Loggers `loggerhythm` angeglichen werden.\n\n```sh\nnpm i --save loggerhythm\n```\n\nindex.ts:\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\nimport {Logger} from 'loggerhythm';\n\n// Der Namespace wird im Log ausgegeben. `sample` könnte hier z.B. durch den Namen der eigenen Extension ersetzt werden.\nconst logger = Logger.createLogger('atlasengine:extension:sample');\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  logger.info('Loading extension...');\n};\n```\n\nlog output:\n\n```\n2020-11-20T09:38:47.386Z - info: [atlasengine:extension:sample] Loading extension...\n2020-11-20T09:38:47.386Z - info: [atlasengine:extension] Loaded extension sample_extension version 1.0.0.\n```\n","gitHead":"b71224db677d20641bf0699782ac73659ce0b760","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-b71224-khq2uncl_1605865539327_0.5714955232322962","host":"s3://npm-registry-packages"}},"1.0.0-feature-500cec-khq7ok3f":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-500cec-khq7ok3f","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-500cec-khq7ok3f","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a77b8ff01bfe23e891910f528c9b9929ce8cfa42","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-500cec-khq7ok3f.tgz","fileCount":15,"integrity":"sha512-VY0hd3Bn95Fso9AN6ClwLmQW3UN3qShxYm9MVH2fzdZTtMzsFhQR/fd3ba1XWXRAuom+qtX9UL7LuRiKdjBO0A==","signatures":[{"sig":"MEYCIQCKBr903ojZk2U8PYbI5+dUTgYykYVhQD2zlwdJH5naIgIhAJ2Vjz6AG3pe9XPJRJpdp3znbmexPBfS8qYy8nZ9koIy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":468804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft6/yCRA9TVsSAnZWagAANdAP/iXDjHtUjtwmwm6S+KoM\nDd4b7SCFxTZTomW0ze/fWNdpdf1iqw1ZAh0t2r4vZG2zvWT0jOg3W6mXHJzA\nB+g1gUJgJcHwb0GFqhIm+w13WTd+KNxVW+oO2etW2/o3xP4KUtjzoobrixcC\nHtY5CRUcwjm1prYYHU+Y0Fr2lNjj5/4Jy0ESPBCcIIrdwfDSoQXgj/M1xEAe\n1POAKxi5RxVCBhTuHRYS26B1SMDmaRfu9nYgRC3K/j10KWXQdg+EvyRZVE6N\nzYKsNZkElUxt5Z4QJzpqQQRqy2Tu2rTkK+v2PXhfa51LReH6sMrUir4Rn96Y\nkKntNu7OrpkmtcnDLDP8K7JojR73GUagILZrO9pPJnu/kbaJ8mJQy/1iUsxE\nE5XncHxgy0Xv8iFTAn/JWLvGUIc7nAlprvPNn908hymv5BwKm/5A0HdZqjwj\nuj+k2C4hvQgUvPqMdnp3LQPpFguaZKTV+2L69pCiF9WWKTbgDORYgP2ooh9u\nPtAR63wtu2a/35abPzQVLViIrO3lAbdFWQZw4UNVvCv7qpS9bd9wPChk1NEj\nZwARYeMONeQeGljTZc3Oi838tZLIPpqVN5otIxZBfv8JLHoXLCV2RruuRW+o\nYqeQeHDwgno6+4i+N5a6PGxoqsw7EP8MiXC/RG3sJgKqm7TNVXbx7H0Hpk4K\np9TX\r\n=aefd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"500cec2a0ca9035da258c799b31c0560b15ba6ed","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-500cec-khq7ok3f_1605873649644_0.04229013609916632","host":"s3://npm-registry-packages"}},"1.0.0-feature-3cd673-khq7t50j":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-3cd673-khq7t50j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-3cd673-khq7t50j","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"30ad2235fe1e907facdf428381de41604b8b4dfe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-3cd673-khq7t50j.tgz","fileCount":15,"integrity":"sha512-rpUHEuT9mOLigkN8ygVRJ+3z6+ezslKqPeovzrCkO+ebJB2IcOc1zw0tuHR7B2SsiUqU+8lIqGUvOvVDlHvNtg==","signatures":[{"sig":"MEQCIFY4Jbjadx8KBBsfi0IJebzeuZYPxqJJRwyluAzGdt5dAiBcxZ9mBm3m3AMFOOZk35mEd0tGyrO8MYkF95ZZ945Nyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft7DVCRA9TVsSAnZWagAAtAsP/3rqQ1vs60zGChny5TTh\nckqlUISpiqtDIhdr1kBuijePxLT0MDNflb68SJpbnjfPa6twXi7pnZNz/M31\nvwufYEZTobFz6RyopEa5teyAoBaAAB9MvvuzH4Tczq0BiBO7EqI+sAoQMxWi\nDkwPyzpHvcMbRf35TBhFeBIQEF+l+0+sCHyK8WTXzaq9BGHNWJnwC9xnngjP\nz0vr/p5M6jUSXv7JCwlk4u8I1kt7BiKEzoxiEsDuexiUsHS6cA2mt7c/DD9x\nZ3pNfHdpGTfP7QsIH/SEwjf4H2Tghe7qu1iScIXQcARIYwHrkoDJRLP2xgIO\nXIsMqiR6ZiYTIEtFsEly+DlAW/Wm5VA8eeK9zd3tRCPDPkOLfPRWAxl2H+4T\nJMlgOQugKGKtIXMClDUzPrmxUWK0cVnfyVM/H/A4YPgL0vsMRYk6OD1ulO7U\nof2bOTOW1Q8k7s9rLEBzG58G7+P75erIJBfwZ85MUv9E2dSrh0JgWw5r+Jf+\n6m8YYbPZ5wbxenzGUdLHdc4bfJmj/tK7nkPTVdqS1p0jQlbym3kt7wCc96Bk\nic1qDFQsG4qM2o6zzI58YoB4+FA5vGZozfZ9u4HCuLl01dBb6hRHa9hGzwUq\nlt6n6Ra03KvIec8zKPR3bXit8Am/PMqvbGjvc5GHnBEbSLIM109IH4dfodGV\n81fx\r\n=+0wj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```js\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"3cd6732b4aa87b1b0c6a80cbd4792a093895f7b5","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-3cd673-khq7t50j_1605873877402_0.33518261084321277","host":"s3://npm-registry-packages"}},"1.0.0-feature-009370-khq86t6z":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-009370-khq86t6z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-009370-khq86t6z","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f14cc59122de2e41e22d881971b47d41b9a4802e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-009370-khq86t6z.tgz","fileCount":15,"integrity":"sha512-Ta3mRs6dsGDBG9g37MGHvDN8y1oubfhW4YpnSwhefXhopAD5Xy76BF3cisf2ghLHDgV0FRp2/KIQ0dkv0rSlgw==","signatures":[{"sig":"MEYCIQCIsG3aqFB23ZiR9Ovr9rUNpZG4k/SVCCpFyl1TWMKCKQIhAN+UGQqHGcE2krfcF2FTlUk4n5J/+fDfM3Ibt8f/R/fL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft7NCCRA9TVsSAnZWagAAXsIP/j+HwSq3D6G150dr3MQQ\nkBMqQyoEupZXzS/mT/BCc8+YL8JDmKIkRpB62OT1HEWjqrL9fUXHJS8ocR84\nOhYB1zVaBa3ZzySFlyMaJKS/nYHum05Q+j1j2GXuIWNbyX8hbhXF3w0ALkd9\n9LkgRfDMUytiVM/f/TXGVXNfh7nXgBoEUyld9aGdJv066rOyKMp/vR3+0ikj\nK4XE4VgErx56lDsCJLJxrsag1UGbkgJw0hLmC54S+Rw40L4wCiyozD+ER4a2\nxoFlUvQl8uBlefsDNQnG8OlWUGEkHyvNgd+UjW8f0cv/LSoCqEdAhFylRQrx\nNf2j2Ftpkb3zQCjIM1vzuCUKVNgzZvKKIUSTlR/nINNeTmYINfa0/iwA/P45\nl1EPrEkafDTdSTaCRMK7tkrrnu4Krc5NbciWrpF5tN/t70V8ud7pXy3u74F0\nYgsg/7NKRnfgkTu39JrhRdbyAuOkZYiV3DnzyiboSaj3TuWcX211yKdNBQEg\n0XjXFsr3Vt/TOtF79CfKKZBY+5v7hLLUZLcUC7weu5oJCaP/PlMkujQ8QV/n\nzDbdUYu9nnd0bthpztaK/biUDEdNcI+L26ZopyQZZI2OEYrh9aroBOMlKkYe\nXO+kGIsYYA7WESew35K/FFwOAFbz59kz8mJ3ZO7xp6E9IvfZABfrh1C7Urim\nQMmt\r\n=OuWS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK stellt alle Atlas-Engine-Typen bereit, die verwendet werden können um eine Extension in TypeScript zu entwickeln.\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern:\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) aufgerufen wird, welches alle Atlas Engine Funktionen exportiert, die von einer Extension  genutzt\nwerden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"009370dca7db096d4e9884a93fab3fe855b7f88d","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-009370-khq86t6z_1605874497574_0.15121423176013038","host":"s3://npm-registry-packages"}},"1.0.0-feature-104b6b-khq955dk":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-104b6b-khq955dk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-104b6b-khq955dk","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"079fae9bccf9c1845cef0405b8a7658487e96cbe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-104b6b-khq955dk.tgz","fileCount":15,"integrity":"sha512-yQRWGKF+SXgUCsBhNEMKQqmTJ2nO3QVP4bujmGE13sBiC9U+evAYWxQ4OCapVdZyy2TDYPjpHbjSFzfb+Xo6eQ==","signatures":[{"sig":"MEYCIQDW+lpPtmMfFFZZCH/7/1UNtULxLrKZAaVpTRD3FMar4QIhAMUlGku1h5ZpughgCWPWHi8Ff4Ob0+K45r8l5+GkriKU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft7mICRA9TVsSAnZWagAAKRcP/0moBvNj5jiwBEnOazAp\nVeH7J2yV2ptqdax2DAwBKyZWIdO6/jyFb1Q7UAyqxVGXSeTnhMnYOGK2pJmw\nImaZDdIpIm5fy/KIMfciIUayLmEOH13/cRshMvpf5idj6qNm+WmmDLk1iOCW\nEeWa8AVvuan4IvaLZ6i5DTufB9eKpwdiS/RA2Sqc9mZTVogKxDMXlEYO1XwP\n+RRGCvNFphTGR4Ax8bPYrbNG9jQtf+CKIkPAKjYFI09MYJPuUEpZqAyZhkeK\nSpM7xbXJsjYnDJtxB1t21kxq22zkSCMEnCZpcilrm4LN1RgDkwL5m5wJuZPV\nMOhe0zv5gpaoXjxGBv492adzuJ9STrEh8fS7KfwKSSyW9Rigpl91sX1mjoqR\nwlhwrhEbyLFhJ080Nrj8BnHXP6NHSiBDS68ZirFzBReoz3X4K4ZaZncK4IyC\n5nOwZbwE7a++JnjUoicVuz3llXfhCfPoMK7TooP9WoW7rDaAFUSl5HOZFVeD\nnUOMNTO+zikHR47D+Mfpg/x4MKXtvhifBB8mYj8M5VEUEQ6iNnWc1eXxNrex\ngcznkzv+HQWUO6h8kesJK6zn0syWNFxNbjHEXp8U4hY+rldcyGCFQ/UkPgZX\nfSuL96NoFHlvNv0qY2w4ewUSAQZk4QOLwJIb9gg56fbfEqiluF2TQILSOFSb\nzTBW\r\n=gs3R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"104b6b58e52b7ac1e23de1478151eb2776f79fde","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-104b6b-khq955dk_1605876103479_0.1957861275678996","host":"s3://npm-registry-packages"}},"1.0.0-feature-9cb0c7-khq9xpxy":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-9cb0c7-khq9xpxy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-9cb0c7-khq9xpxy","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9a620d9f388bf69937aa0314f2889491514a187b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-9cb0c7-khq9xpxy.tgz","fileCount":15,"integrity":"sha512-HF/NSO+yfOo18WjSY28Bs82GRclnqagqdgWmBVSO6ncC5lMOSFXFkCW4q2TA6unxEO4nviK50S93B3ryobzR1A==","signatures":[{"sig":"MEYCIQCG6hP/RoDxzHOcKMqw9g3B4/DEi/xoZp9IBw1zh7K1sgIhAN56an7R5rh7u3PEzUWSPwDpjSFqSj4UqckjkBFgfnhV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft77KCRA9TVsSAnZWagAARKQP/jRp4WH9j3NDZ8dcYF77\nOZOG8VSfphdx1NvuEZOhDsaBs/gmC+XJBSpZ9YN1QtGwvAaJpr+gMWNBQU9i\nu7GvxyjjRydQZ54q7EgRybcy7Uck+HwEA9STg1eErEw/mqUrkXamnXGI/SOt\n/uNqovJrgskL8hMKYytxKvQvH1WeyZoA7mA9OvTlISd8JEsvOtsZa0mIXBGz\n1NtA/Ycvgl6KR/7QwWIMY50klr0riHietctIcVrD5w2/ivddODwx0tLKUd7f\n2hw1dsxHj+znkRlz0FfbO+FrZZt3KNEkLzqbIEjSRVsAMWtAbgDEACt7Hf7K\n0cibTdbZDVWZ+9v+9CGwlrIfmZFPCGX80Hbs+cuOw1jg0eNvEOq/uFpHRNUD\nxN7Yj6mfVbRQsXeUAeRoGhmPPDDOSeS1p3bjA2U+Vo9QWCFKaVbTCurO41g8\nU478MEpjiv6nCT/X0A4xnafEVBD2DtnJww7cgy+WQum9IM82QQPeQvCxcNqR\n9r2hOaImLqzsDK1rFzQmSBRUOc0DNZyh4GoWJUkXoyqo9DEWwAcOi7n1UcUw\nXZSZbCGnk0Jb2sn/vvUKyciaqcrud5IX0O0CmR04az/sUTVotBQCdPuDWFdV\n3taVI9lQnY6GCqpsAAYlLonbTHTTxaDVxUHr3+ahadzwRRNORUPJAmPRleXr\nmAUn\r\n=nM3B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"9cb0c7f715b3be2c6f72846a15d64de06247340c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-9cb0c7-khq9xpxy_1605877450012_0.6810448754521408","host":"s3://npm-registry-packages"}},"1.0.0-feature-484c0e-khq9yyen":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-484c0e-khq9yyen","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-484c0e-khq9yyen","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7692d4d3430a611add9d58a0a0c12b235409071b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-484c0e-khq9yyen.tgz","fileCount":11,"integrity":"sha512-+7Z6/85cCvHYkeFqpUSPr1etDW6XGn7pKe8Z26Bg7nv7YozaW8k3qEZG+//+YqL54j+D4HohpCJU1AtoOGQxfg==","signatures":[{"sig":"MEUCIQDmx1kYcXxO9aDU5ThbPp9D6NM2i4KXEE6VYiycwyYWWgIgSLAtqNDpV313dIDQ8hpk+wxh6hIaOfJO6Dh/cbd1o/U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":182944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft771CRA9TVsSAnZWagAASj4QAKCY1TJKxPl5k92Bwnw9\ncVshQ464LMWOqYhwo3w8A0mGEfVrscm0c79VWybNpdMBjZPyD7KgaSBhrOcj\nmnpELIGnxn4F4QZgLpv6rZizu1OXo4Z4j1Zk2Ah/KzWoGv/1lg05qoLk4jN1\n1hHIfe9FvjGb6RAS8WLATgVojxB6Ldnr3ifISciQGKFxxdxx3xiqk9ybI7nt\nWzgQVjdKNiLjSLYMmsqrtCqA4RlQf2RZ3F6IOJUk3HdxzpjJvXuPbw+Zu+k4\nRN5n2zAcJuFhr3Wckl+3lXdgx+bZx2j6D94lZJQKh5cZqV3fg9pJ6KZdvs4V\nKQsAATfGauVW27UedLl8r0n6TGWQJWUytkQ8eMgWMxKrhoM9nOrdIMBFnpJs\naRedFWL3En6lVQ4Q0lm+B+GSFQ1/Ad70AjHZR8yU9RWQdbmZur/DTnbWtSUE\nyFfSkBe9GC3lKyFgpL3jGJo4G3A6RDvDgQGYkNgAhhqIymHlaBLlclxRj1cF\n11JvHwdM8S8eras2YbHOZrJioHRvzk3/4l5sDXb6OW2V3+dpC+5SGJEhSYF+\nHbr/6CcgYJeQfk4PoTdA0FwOmZeqbiaL6G4hiUEf0U649dE2owPI9hezInU9\nVI2350GxKJD60WPQSRe9eeH43fRIaZdDY9Lmt0Y3pNUAb6fYbxb/JeFNHaYh\nPdee\r\n=m65Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"484c0edc5f1fd21bd8bc3ab4d16bbd4222096982","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-484c0e-khq9yyen_1605877492498_0.9127767967483604","host":"s3://npm-registry-packages"}},"1.0.0-feature-dd149b-khqa104s":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-dd149b-khqa104s","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-dd149b-khqa104s","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"483dfc4698e9e235e5ae7f45121d3d7436f58830","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-dd149b-khqa104s.tgz","fileCount":15,"integrity":"sha512-GrVHnnj/DMFFB3qYJndonQuTEeJAbasHgrXYeruIMOXe5oHwBZSQgg5819lgs6MDOCsFPVUtdckpnjBV/xC2Ug==","signatures":[{"sig":"MEQCICvQcWYV8sekF2Ky0ocZPqf0s5bbfPjoNG+r2uY95RKLAiADFyRifAj6fZhkWCjATYiXF9lcF38VGN2CSHh+B+aSkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft79mCRA9TVsSAnZWagAAt2gP/A7+x+G7E9tHJZsoxb01\n0pkVDZu1j1WK3o/BhlmIRVtEQRjYAndGA+XlNbcdP4DubM1vCYy/m+GWccB3\nJ2XmWIOvkr/2K2A/c0iAw9Kc2zC9NqNLbmD0M6Zr+ov2VItA/gOUqIVGwphf\nhR1VFBkXnOMmmKYqUssMWa32EbYy2lfYZxmKZF+O8W4FsUj+TAKdQklxwzUk\n9M6Ukrprqa2t/9qIK6OOzsS8bS1/fvitrNNFvyMa/NxMgttzr+baZ/8Xd6LM\niW9CUhUDPTzOWb0sCwTGDC/NjkahV1xgTZ1uyqt7HGYkF8v9hVaUP0KtiBED\nOLkZwHuBTXTXLGD46e0KxcIubw/diKu6Btb+PJUxITEDvv30F9SVU/OSGb3H\n9s7QO5YtDcs8cVRA4pgCCYWO+OcwS0zdbFJMKxfSkZ+WviyTzKBJubSKZ92S\noO065YHRiV+JaciFYtW2UoC4AHVLAJmrasahp9U5eWojzWUz83ozfNL8Eqbm\nJkeuF/otpq2uUMftqQSPcTKM0zs6gJ24m8VK4zASJGxVjWfE8US67Z3j2fy+\nPhBVpH6jyfBnFh7gJGExohdmzbYeBllY4lMyN0W2t47MPUaNUs+a6YRYYXAW\n5GGfCHfjvEEaLBU0bNx9Ts7V0+QIUcQ8FUYe8eB54Nj05DYw5hFDxziNX658\n+YDh\r\n=cHAd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"dd149bfbfa58142872ebd79b66d7e18aa37e1aa0","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-dd149b-khqa104s_1605877605551_0.16929292649393535","host":"s3://npm-registry-packages"}},"1.0.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.3","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8cd54183c615e368352b487097ed5939ea69a5ca","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.3.tgz","fileCount":15,"integrity":"sha512-w8p7kKcjZvzHMVVdZYDSqSzjwbj0uG6FaxMwDr3QLrzBzbnD932BEnfiQ3XnPlNaraOBgloeqHwFAWb7xcAmiQ==","signatures":[{"sig":"MEYCIQChT2GUHUkbjXBmW1iHElYCPRAKFo80U3Jlfsjw3BJMOAIhAIXDHLTBnrduRX+3qzQ6DJ3mC0pLIWhDie7DO0qM2D5B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft7/gCRA9TVsSAnZWagAA6rkQAIK9O+yxn7EL6YnVrH7n\nC8iLtOm4PTX307wa4zE+w/eiaae09r+jOXS8OJy5jSkUCbLml0Gvl5X/3yCd\n+yzfkrXaF4n1sFCGPmQZtmWdOE8O5KypeASVXIFZ/y0Ew5dQS9oZC72r4aq5\nvlB6vm3Tbb118qAleaeCH5sWfFzAwzLB+82+wkDp244gUuQ1q3HCd1Ed+93L\nJiy+9XSB8xVBzQ0Ugq4Qi3wZVBVhXR+Fhjh3Jc1b9dAfM7SFRvggV4ljF/G6\ngIB+XLs65ZRi/JOFpypAn6ZnLHYHHMXOeoZ0Oo2nvbKNGJIZotBBjKFZt+fx\nlicmWkvVFPcWwjq7D8iC7A1oiS2th2CzSR4C8TDnHXws6caqCP1BjutJqv57\ntws1vMRoqaAKfxPkIab1DlegjmuWM9L/X81XjEq5gHyJN5Y39/FmXZEx7fsX\nMf5r0afZLNd1ufd5JWgvuWQCpxyEN4EyMK6HEKF0dBzIoj2WLMsfQC/PouLq\nJu7Qv6gd6FLvsPJeoCxl44MPRAhjzLhwaGV7tQV4JKuVj16eCWisA13JyPUx\n4HsJ+mjGJPbydtPqhJWt36P1rfJdOdi7D6GI9EsSL8o8na69tkCLFaBmqEzv\nC6LkkWZ3LwpS679Gxed3/iHJVTjIsZCcaLjwoBjCNpCk1kPS6URLc1YsR2No\nodqd\r\n=DkcA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^1.0.0\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"53644eedd88be1d64dde8ae21de836ae704b1227","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.3_1605877728103_0.7623117071939667","host":"s3://npm-registry-packages"}},"1.0.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.4","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1a4eb96dc9e3b737ad4623ee6d9605491ddc38d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.4.tgz","fileCount":15,"integrity":"sha512-gniRjxaII3Jq6t5IPj1WNL0wwUEdH4YbCDPPeBzEnj8u/Lad84KWKTeEI+s3Sg7nowhmCpGYkFg3ncbORzrdNA==","signatures":[{"sig":"MEQCIGg0XR14HQlvX3TPjs4zxWi6mFp5xiQf7lj14XxwtlgjAiAUpdmac9hgFt0KmnFyRECsO1pZpaKMOzjsGuCSUl7WyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft8CyCRA9TVsSAnZWagAA++kQAJzfR8ksrWTPrF5GoH+a\nta1zTKsUH2uymvvRtoFzTTYUpS7XexEzNvwee+qyGW2D6U271Tmq4TFh722e\n2IDmT7gTkZAhe+ktinsedYVMGMTC/9KqjMtadIq7wD9Ntk84rSt8ZPwNe6qG\nerPUmpz+2We8E+5IArjnigKheKQSBR+gyqjR6ZqrspNkBV+/ebfbfxkasOnV\nvpRe3tZ4eat0n7xd2VlrXhewySmz4G3Do1S1wDdsgggNWzRNo7ow21oBcuyA\nTXG6NCZegWajUTvnwzlxPUv9yBzPnij1fC4NauW4cI7MSx7MZG2vEvovNXf/\npV/sE+HtGtks3gn3ecTYVUPG7aD5F+rzle5+/lbZ1WTVHsyXVJ7Q3p8hZ5pp\ngSn1qJGoLm3aSoQQEEhNKfZwLOjgJRCq9UN3eyhPsPAj5K7gqjSMZIDpxVoK\ne1HoimKYoPYQwDmXZAWxor0ZvuWZaxFyx6KxRkVufrRQkmfagRKyxD+NJk+E\nj6nPnpXSzXVPw7etQa+oD7d0BV4cWw5GUL1t4lu/nI81lBf3ia2LO2VjqiLC\nLnETGFklywK8vkQY/+ToUSe+GW5H4Bto/PKPk2FV5TuWcdgTZ4ESjva/r6n0\nGc11ZnWGKsT1zX3/U7yITHmRsp9fphqOdekAE77Zr2TyAMOK9PRlAOLpJ3u6\nZMqr\r\n=rkbW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"aa27f89a87e6a6fe3c86fd2e9c9370662886fd26","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.0","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.4_1605877938502_0.282574222879175","host":"s3://npm-registry-packages"}},"1.0.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.5","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ec0af20e7219ff6646e824ffac3e1f650932cfa9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.5.tgz","fileCount":15,"integrity":"sha512-p+m7X0BcvS7f8J7me10H5wQsMXgcViWjLwBFX58OflvFGhJc6ollfcTV0g9kOUiM08IppwuCnjADAm7wigkmaQ==","signatures":[{"sig":"MEUCIQCvlLeY2my2EeQq+Xbr/kaqbfZAIudMi4IdjBCyr032GgIgZ/XC/dEEpIqZkyXN5pN1BYwW83tCvuM1oXpstpo4414=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvllCCRA9TVsSAnZWagAAUmEP/0jLX42uHy6MBONTUeo3\nK38Ye+dHmQ/jQWxhc0SiAjVP5SJa5bXy+oU/grh/O1pL+nvbtkkeGoIIuPKf\nJctWtzwZiGDmVvG0TzP66vVZyhpHcLYht9UANWXigQabHw2squTlixHQQrnf\nAxjNR8GQCpXiFLCjLjSFxqYV3+McMfdeZIemjZDMQgNMMNcJ7xVgVkvyyVK7\n9tjY2Aqy5NLLhJ+Fv4b7O0w07dUITkcwqDmkZ3CLViCkbe5aRGhrsy6S729e\nSQWewu0c4r9yk6cpHMIXtqkOKHGDvlxJ/BcmNZ1ZULcHyGnybSeQO9yYAmfS\nWUn9U0bZL1si9AIu8wqaJuqQkpTwH5eJqDtcqPRqNNuB7z8/wjx9NrwfufQD\nsNFjWpexDcz7ulv4Rl+f/2NRNS5vRq1+5Glh5zOHCG6s3gtgMb5Grz9up979\nFTNmNXnsWWRg/s4ZytCLi6eCt7jCuA34hCEGWA0eC9VVH+7FUPWw1CetmzJb\nLyf/wlsAEh4ECa0Z/5xNdO5FgXJzxpG5bEjHq+4Zo5nbKQifIu6ZLSG0OC4Z\nFYXDWcrWFA1xQFNa1m4xg2D8kkUQvdURv58x406XjqSPcx44fKsscZDDutb6\nJTEVKPCIwhyIryqv8KSMLxvXK+UWmq4duK9BTRhsV/3EFePDPtq2KVYbOKbU\n8NWl\r\n=okXi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"29a9f98e196189fdcf8263cc89412a16b067c160","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.5_1606310209281_0.48423355060750617","host":"s3://npm-registry-packages"}},"1.0.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-beta.1","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b0d486dc78a7ba2807abfb303efc3522e3307bf8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-beta.1.tgz","fileCount":15,"integrity":"sha512-coZ+KpMLhBTyZtCVwPOF+t2sFmtC+/qmD+O8eDEeMQFDuowk2dHjWvXgta7U6TC8rRwtLFy4optN/BTpg9yc7g==","signatures":[{"sig":"MEQCIFPlei5Am/DpJpz6gjxO8akDu3zCKIm85nIgMq8wyZAZAiBghmxWFhcK6DQcfYORBVxH7ff8Lmk+dGRTB4i5IUaFwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvllPCRA9TVsSAnZWagAAodAP/3sweF8SmaqGbnBJsnH/\n503ysQW2VEuWwfPcYcd0+Oq2osKE8cUL8oVZZDuYBrmUtDUNmT3W9qPY3Hb4\nYYLz+wYMSEpT4oYODabXP0UORBpiTiG8VIVu0roIZUWSyKmVCO/x/uGTCdiJ\nSI/q7ANzm8KEjXINWVZhuffkKwZot78fnl6HbUTtOFkAmJNif/g79RkRb0zM\nZ/KTOvM3STAsyBewEp5cWI7iMLgm0rNk+GgLX4tLlFfcHzBw2AtoeLTNIGqu\nD2wYZ21aICgLlpcReHzoFivpWyHDqFX4qVb/GtjijZM/dkVt/o3rBVH58hrD\nlmwK7E5uWOV2/aTtP1u5PIfCsRsAyIVpnCPHbRoGfaphxkWx7C2KZHZsxCbP\nM+lU2O6UTgmtobafDNECXMXDxW7dLR8yAuLmyPfQzzPAnyJtPbp8mgMeb77d\niw5RSBP5DkuFczNVO2RFz2rnlUJuOqA/0KkfFZHnI9AA9IjPwBmjf8ZiCtWl\n+Mg5u9VIX0iA9rJ7tASE4HyGwSJrhxF7JgAjsahAF5b5XRZOwVoITrJTBLcS\nIDeZLT+Fy1vb91W3NUL41jk7jZMAoYGzOmHcE6CjUsyZhZwG/3LRkTk5jr9I\nA5L/be05DgMvSd2V/pxEO0SVjfF40D5CxsW+BIOBEaRaqoixGC3h5elXg5Np\ndkfH\r\n=cydc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"8a9bd0fe8e2bf18a6f872323f23008e4565e0171","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-beta.1_1606310223292_0.9140562219998778","host":"s3://npm-registry-packages"}},"1.0.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-beta.2","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0503ffcfa12095680916fd5eef68b8780f0bbf89","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-beta.2.tgz","fileCount":15,"integrity":"sha512-4NcheEG2MdneRTIj8pL/8CHFWWlPFue6OiKFAuVXBjoPpC1vMY7LMSWqF338FcZvqnlS49tfAvJ9Fsra+EFbNA==","signatures":[{"sig":"MEYCIQDBRTOkL02FEV7+E//tWU677Dq6DI2vUmb4bjueZBpo0wIhANdqcWxv5AzLQf4Hmi4jyevMa8nqbb/pwwtvwWkppXhk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvm4xCRA9TVsSAnZWagAA/uAP/3Hvkg5GEqNswl/RQU8z\nIz4DJBSGr37l+QvuCnvu6RalfAOxHPZ6kXSy0+PWwkJ9CBKhJJzNxoU8VvsJ\nh1jsupFUStecMvFm5i1N2HOuEuEmkgXC1UnnPVKUV/1yc77nZ0VXOp2Ah+Pj\ndMzy+rnKjiNaFF+kIsK5bgnVqRrozQc29q5pUd4tC3WhzQ2vniOEDRPDqpvz\n89FURNd+yM4Bq/G7rkzRScPx1qx1TVvcEGXNzQTFYpUMSJ/s2OrQFC8RzbhC\ncRplLKjxvpMrkS4aUSA9Ib+dXtTMZIyDs8m254tf1KP5xwoWVRPs5WAq3bZZ\nkPRrHsJhq2jGjW93P9687obPE4FI+IBL0XGNM0eynIUMf9QOd1cSSwLxrHbe\nklnmwCe/guGDXpBjM/IB/K9cqfE7U4j0l66cuZR9U16VxPcZiNg6r6lNUKWG\nHN+Q5m+XKHq54rrWb2DDQNBwiVTdNiQN1cXHa/cKezHBjZIYDl84IFIKIbAq\nbaNQ3OOUEWIWhQRam5S00iMN3177NnY5Ewyh3vx55MNy8mInbDMSw2NMVgxs\nUHY+DVygvpmlUoazJKOWa4cakS255Fls44dDkfh7bxMMJLTZ6V5DhXPYGmyp\nGiPOpIqv81Xj+2YefuudAFy7Hd7vELYQD6v8FG4hEmgriqvgZLKHbw5V9s5d\nxLvm\r\n=yt/z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"b9d6b6023f2ac6e780041ea2e5fcc90560d8cb19","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-beta.2_1606315568776_0.7462665399307216","host":"s3://npm-registry-packages"}},"1.0.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.6","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"32777c9b1b02a83c502ddbf0e0a0bd45043ee74b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.6.tgz","fileCount":15,"integrity":"sha512-gSRpsGsCg+k4EIzpg7hbjGsfgs7waLmmv+QFINuqimvD1fqz1tBHRbtgITLEHoLXvjZlCfkCIgz8ceo7YeMwQA==","signatures":[{"sig":"MEUCIQCssaIANhvYTKMui05ahLxVP1Pt9/1xuL1flRIRzj18qgIgUGC3AAiRJC3pSIDhk2beCYbXW5mKQsQfkOcPsfQLm94=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvm5cCRA9TVsSAnZWagAAXkUP/0IyE/i2qUAbSi6m33du\nYCX/o+nrslYNWL2PrRujmoNX5s1VwViv7dLdrwQhBUAbwDf5d38Qhs9w47/O\nPRfmCKKzFk3VxrhDiGeV+uVVo9JOJhKgJ6o+l8MHlUzF89VaiI9ViEYj0TVv\nJshdiljktSC4KOcNwBsQmEOX7vd1ab4n+/1m6uvQ8uicVvOzHmZjolgBgzQS\navoWvt5kucSFCBS0te4wslruc+JJRN+OOS94+FFCK/NXN5qKvdLIHqnYXhUP\nv95pyvqznZWjIW311pnCuTK3TsnlybDUTA57ba9IEMSbb+jmTcizR29vhgnY\notMjHofvPI1kGhAAzRQVtfQQfNSsyUKv2N4/4E/Uu2miY5/ST1fY4qBui7SA\narTeSWZNZo5BiBBfpCe2UwJpHDJZMviaoF8LWU6gwENRqNhR8CbZXtshTLiG\n+0WgixqJUdZr7P1tZG/WqvsMCKAbPdQL5b4pxOZnHfwAAWH+4MP3XncQjNa3\nArEZ3AS90sslSe3VhQjgPhmeTjgoGhAhO2DQ7YgcVXDsLTJ91smgGdp7p0PJ\n9uosRFvZ2cUhvgw4Cm+eN8bAd8O2yFoD4YcK4dkGYwkgAv2P9rliqtoKJuJl\nNKnXlS2HYDr2UW8uamdHAv43CDdjfWVIhU7EN6UgY/2fsQvsNyIGHdwWMqdX\nxFC4\r\n=QgxX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"47eecef126176305e6e549a544dc9d6e3286d853","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.6_1606315611839_0.7573189821516508","host":"s3://npm-registry-packages"}},"1.0.0-feature-e09a01-khxlap45":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-e09a01-khxlap45","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-e09a01-khxlap45","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3fe7def4bc5591a368240169440fc6a799190a03","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-e09a01-khxlap45.tgz","fileCount":15,"integrity":"sha512-c4ayzCoLxBqLvN8m1G/UE+Rr1W0Ny9rcqaI8uLCgLt6AdJMCAFtWATmVQDU7TpipRHebe8RtYQxtzQP4rRHJYw==","signatures":[{"sig":"MEYCIQDRmgenXikb6efUMTKqafGMqHv09ZDm9UT/h/binQ322gIhAJRfvQNZhIuERXo6G73stvEZYR8b45++7cLzrI4doFlY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvn6zCRA9TVsSAnZWagAAwFAP/21XFtn8+bU933m93Ns8\nKtfOeNeQm9Y9ox6zDtpjB4y/HN/sKWfbGiSgN0Jn4faYy3E/I/UOKkeB1pJN\nnDJ/L+83WIAAUoedpEPWJwDKSOvvrbhKAYHWJtKhBm5kYHugVDKLSmIss9Df\nP2u1bZicagDJ50TBfRqy5LNNhsM7nEgR/SHsSO8qvWoK9wjE8lqvyMhdJfgN\nmrxRHkWFJ46sop6wW52LOM2DM/XPyBGp7m9hDGX3bra/Hog4SC5PKPiilNY2\n4cPJjbtp8fvjFbL+12ElF+H973BdQR0uVXjV126rarIOqpIDkTRm8IdxaokH\nfNTC3WSjbgM/WeZ6ZcHwHt2QSP66XfBH1EtMvBKxSLFkQ/C1TzfgWcTBdlaV\nELc65QjeDRawcJrRim/zmBiLWkgCiFVLb/csIKXE+tZj4Hw56SwfjXXoyTWf\n/QbutvlKRz3+h3RjoTC50v6DxHK7KfNHcPUBiBprIwurkn1wJBd16pHC6b70\nUuiz1V8QdlNm2NHMkh5vbk1GVxZdhJy12E4+IMo4vuTsFlMIIXs51QBpFvtx\nUO4v1HbUoo+20/KaE8vWiwO3RmZaCUEZ0NQZ803TF/HaoVzZtM1traubBHui\nJmkaGFE7DqnZrnLmtXNlm9cq9AmqB2OukugnFrZlzB32dgcQ6QaBAK57MT8h\nsVN3\r\n=SgW1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\nDie Atlas Engine erlaubt es mittels sogenannter EngineActions auch ein Eingreifen in die Prozessausführung.\nEine middleware kann keine, eine oder mehrere EngineActions zurückgeben.\n\nDie Art der EngineAction wird über eine Id festgelegt. Aktuell gibt es jedoch nur eine Art von EngineActions, die `ModifyTokenPayload` Action.\nDie `MofifyTokenPayload` Action kann nur als verwendet werden wenn das AtlasEngineEvent,\nwelches die Middleware ausgelöst hat, ein von einer FlowNode ausgelöstes Event ist. Solche Events fangen immer mit `OnFlowNode` an.\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Der `tokenPayload`, der zum aktuellen Token der entsprechenden FlowNode wird.\n\nund kann zum Beispiel folgendermaßen aussehen:\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"e09a018721c32f47c18d0abd05df96f93748a5dd","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-e09a01-khxlap45_1606319795030_0.49272955967233867","host":"s3://npm-registry-packages"}},"1.0.0-feature-9b9e3d-khymtvk3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-9b9e3d-khymtvk3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-9b9e3d-khymtvk3","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9a5c44e0449528337342c2d4b861e1f2c08e2672","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-9b9e3d-khymtvk3.tgz","fileCount":15,"integrity":"sha512-36mE4V8aXn33LrmkSLSuk+gCf3Tn6z+WE5YKtJEpcs+ig8JmV1zjCjwXwnqfEnS2am9O8cu6LUjeVM8tbuRzBQ==","signatures":[{"sig":"MEUCICKjcXt7tn+JcYBtP835y56MnJYHeYPsuYntnA04E+JSAiEAmC72pIaHE3cDk8zY3ooR9kdmdil3g36+Rx34LkY7yhY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv3T1CRA9TVsSAnZWagAAMEMQAJzMR7dY5M0bkc+o7qo2\nVwPt16GXXUtHvVluSr+Bdklip6Y2VF6dYqPWGl8ZgxE9V73IPGM1g1ep2IBq\nfot9jF93/N0CI07H1YPtdvo4E+v1FYTwx8H6pT5LW2vg1Wj+/i/i3W/NN6zL\nzp5VsXaz0BaB+alOq6HBxKxNTc3DBE85ToghXcVxCAyXxb2qo9bmBr6EOh99\nurN6jC7vnnbhEEOyTM0Ww/N1qTG2Er6i4QRPxDqim5j41OyZ8wbPcSnueBGq\nr61DuhcdDlvS+OD76nwY5a8ct1uDrA20dmbeTCqLYH/rwvhwDpDS36nCwQAs\nJLz43xDhacULJHfNEI+5eGB8yy/maAA7F3kJFbCdJTveXUkTsVWrsWpTABXX\nn8w4s608u9xsFZU8ubZlqBSTv0XrbJyaEFcCyKZmroEdHxGPJ3YFaj2mG+UA\n/1dnwszni4jkM83A28uZq62bs8ZDOK94TOr3VaOGgtXVfXz1GnLmmroodYs2\nxsBE31GBjTHPDHUz4nbCPB1QLQ/OH/RwBxTmBJne7VZWrl8r9kumf8C1a2VY\nSZE2uKc27ggaLDS8E7Bv0aGHmFxiOB4vQGqfGe9mXNF45D794Pn+aGEPkd5o\nWpqZPIPrC7jOFvk5CFgwWUcIJuVBK/zGessmuEHOUHrBOYc9i83W2GN2p7NW\n4s9K\r\n=jVWE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Atlas Engine erlaubt mittels sogenannter EngineActions auch ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nDie Art der EngineAction wird über eine Id festgelegt.\nAktuell gibt es jedoch nur eine Art von EngineActions, die `ModifyTokenPayload` Action.\n\n##### ModifyTokenPayload Action\n\nDie `MofifyTokenPayload` Action kann nur verwendet werden wenn das AtlasEngineEvent,\nwelches die Middleware ausgelöst hat, ein von einer FlowNode ausgelöstes Event ist.\nSolche Events fangen immer mit `OnFlowNode` an.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Der `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\nund kann zum Beispiel folgendermaßen aussehen:\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"9b9e3d364f30120fa95edc75f1cf22e7415ec930","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-9b9e3d-khymtvk3_1606382837190_0.34307530446676493","host":"s3://npm-registry-packages"}},"1.0.0-feature-cca43b-khyo7qhz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-cca43b-khyo7qhz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-cca43b-khyo7qhz","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f834f6a1a04a84c0fdb87053dfabfde938699212","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-cca43b-khyo7qhz.tgz","fileCount":15,"integrity":"sha512-OYJoJcty9tP5tVRh9eCCEbc5my9UJg5BqWGRihvXoQbxbe9VcUQM/qYQgFLe2PeiUdxCPYJRmBwryLW0dK4Yew==","signatures":[{"sig":"MEQCIF//sWgsfh/bPz7QDe7HTmGYMXNvP1B623ZM1T8AEnfcAiBYQvnci61Z//CdjixD6bXCuJWLKSzmYjsnW2KrozmFig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv34DCRA9TVsSAnZWagAAy3sP/2jtOM8tL7fNloB6BlrA\njHzzYZ2Eps2+tfhHVYeF8lei+dfnLw80XpZJHn+lN7ZH+AZskCLZqqa5hJVo\nqn4GrdIg49X19OWI4S28h4mCm22QOt7z7jAxd1O2m9/YnHDcDKxDhfCMru8z\nXHXnIWfhjV/dN0xfzQWkAlsJQmskeS6G2yUuS4z47r0wlkWoPS8Vs30LeVms\nrBk4o5WWxTtQOgkYkx9P9WiKYsW9Xw405jR83T0jStRJ/PZk/H6hCW82bCs3\nynp1b8i+avzlp5v5FhJy/z3NYKAK9zn0SvFHATtAImv9FddGpTF4hJhXmirQ\nqvrl6gr/PFYjRZUzixOUdHhpBTpMxeoKMd7VPD6KH/yovBBk+H+IOM6pwEwg\nC3f9Aj/FUyPNBq3E2/RFMcnB/5zHgQE848qEJSna8jPVx3lFDqEJSsaEGxCR\nBORFTKLvjoMj0XNV6S0Yg60Gqx+3YcDVt5f4zhTWLi1nr0SYl07g4QLXqw7a\n/5GLUln/IJndpPGIi6ooO83t6OvqkXEZt7XdzdNKTQ+KJkWfruDeafNMQR9f\nVl7Xcl5I7bzXTcAWH1xE9U6Kzg1qMCaRueVYEhzjud7WiiKAyHFWVQHqhlwW\nhJezQf0B8aq7B+Jr7KOoPejEaX0dE5cTleb48lJr/oQAHxGsocw4PndzbmRu\nefbG\r\n=UQ38\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Atlas Engine erlaubt mittels sogenannter EngineActions auch ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nDie Art der EngineAction wird über eine Id festgelegt.\nAktuell gibt es jedoch nur eine Art von EngineActions, die `ModifyTokenPayload` Action.\n\n##### ModifyTokenPayload Action\n\nDie `MofifyTokenPayload` Action kann nur verwendet werden wenn das AtlasEngineEvent,\nwelches die Middleware ausgelöst hat, ein von einer FlowNode ausgelöstes Event ist.\nSolche Events fangen immer mit `OnFlowNode` an.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Der `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)","gitHead":"cca43bf19b16d148bfeecb223c4bd66e3efe2298","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-cca43b-khyo7qhz_1606385155373_0.4520704255163661","host":"s3://npm-registry-packages"}},"1.0.0-feature-a0bde0-khyokxyg":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-a0bde0-khyokxyg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-a0bde0-khyokxyg","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eb7808cd60f8228c89a0819d68f0ae89dc0871aa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-a0bde0-khyokxyg.tgz","fileCount":15,"integrity":"sha512-EeDixCeAXQRYG0o1sAaAhsGDKtmqUf22fQcfXhJ4tQz2rdCNcoHaGXPWsSEFmDL5w/uKkASjaVVxTdfXeKXP4Q==","signatures":[{"sig":"MEUCIG94BYW5no3ErOoVDYJR+HQUk2QLqxYmA4scY5QReJAPAiEA4lIm1rLHicWUMYm8YLfxpIUgljHZ1GlIIAS7ex0ZfqQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv4BgCRA9TVsSAnZWagAA9dcP/3eLHdwNqyoWPpx1Ncwp\nrqjwDOBlnJt+vPbCzjAJa2G1tPCs8TBDQxlQ3oJe4VDLpKKbvJ/fvgmECvVu\nHydfus4kbnqemHkxKWeFXoxqDYpWCeqSMej+7CaHgRAvID2kZF+oVbhXRr8k\nxfzdCvnxJV8Yc8HF7FBQtPLMu6iFOf9VtV5mfhKQNtkVoSmtvSE32UYP4Q1N\nNLwNmIEPqnnkRF+lvfdq37FbHEIcccZP/hMHq391MA+7KbxuP6iD0zVAyDqz\n98jBWIqWkfEy5cMtKEFYJ72aDeCsp2DHjFj24olUq4GAlPyKET0Zl3GlT7r7\nHOndfadL/EXeT3hnKXdDX8AM9CQGlntsnCFPlklK0odXAaNoLtlbpkJeKKi5\nt2C9AJ6jPowki2CnVBEselGzwetFpYA46rMSIk/gRKhhy0sdizN4pi02GSgC\n2hyrkHzTkX0Mnx/ZNwJXZOBSO09oAxMXj/jTHTPt1+BbxS42Br2X59vzY2pl\n0+80XhAfhxlRJNfsZFR+Q0CkqmjbyK+W11zqb3ENFKe5MC/TxzuF21545ITj\nyB1ujSNt/4E3SJSuCYPhyoo5IdDXzpEBQooUG4QrxWdBVmP3uLxvD7LKPDJD\n6suBPEVUDkiHagzLLfllzur24Paa2LzeWChqJivrJ4AQtpv+cNcltBtzx9mc\n10LP\r\n=qg3g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Atlas Engine erlaubt mittels sogenannter EngineActions auch ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nDie Art der EngineAction wird über eine Id festgelegt.\n\nFolgende Actions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `MofifyTokenPayload` Action kann nur verwendet werden, wenn das auslösende AtasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Der `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a0bde0e50cf5bbdf456aaf4313c77c56472d9291","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-a0bde0-khyokxyg_1606385759829_0.5865398488158453","host":"s3://npm-registry-packages"}},"1.0.0-feature-dd958c-khypuhkz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-dd958c-khypuhkz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-dd958c-khypuhkz","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"04acfccb2d4e51d5092ef61d7b623afdc07027f2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-dd958c-khypuhkz.tgz","fileCount":15,"integrity":"sha512-COm8z2XLnmrf2hIqigOIiEvA5bzXLRKNxShObVsgjDx3YCDwxNdVewaLtXCLrdtty38IHDi8Cl2gelDHxeBnjg==","signatures":[{"sig":"MEYCIQCv75SupsgLVtjJ1/sm+3VH8ePNMx56s8lLx1Is2V8mQgIhAPEkiMrg7VRpbAqLf8Sro43wi4UIyi3o6/bFXW8Gc7DV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv4jACRA9TVsSAnZWagAAkk4QAJZlG8fhpZaCZxTuX5jN\nBK6zDhnPV2yEDLyat8Vx/XPka3aqlw7YBeCu8cvb22GwKYT7LghBMtJAfjtv\nL0xtq3x5eq0LYXaUzBTfGcwkihVdDNOGzY325aAVe4TwuyrKbP3w0s1FCBjk\nYZ7bNu0lUCG7lQglp3aY60vYx2Exl0yrW3tWq7qX56GPVyjMQUI8HUzdWcfd\n6dwi+wBS9ItEHyNCZWf1nOyDm6cAemSIJGNpC2id5lymQR4OazRVsQwyKf8X\nGCcpZTRyl/Fdo/CBunNe2aJcNkpacPI/i30M3oRKYxgX4Vjw14egfMZr/OzP\n6QtfADooHlSzxQvtykioMRB1tKfjILRsTo0TfwrM937+QbI8WSKbQ8aEif5s\nMX5eNMAcNO9W5NgkVwQHp/++Isp6Rg0MLnWQNzAe2iPri1wa5MwTELOGE3XL\ni/wudmvEVcFeZagxybQKIyLw2a30GYXa01WZ2fL0SwzKfswIjjq5SVil+JL4\nEWIp/3teMkWzHa6CcKdJD4KYxqOgawXZ38AqWB2xjEIaYEA0SGQtAVODL+RJ\niLoAs7UdqwrMNpyCKcw6vDmU0ktmEIxfnrD23qS0s9VclGvkGueURV0xJdPN\nZRqtaLRjBvLQrrBUwJAR8HiCwNbfDqoqHlrWWKvPCJZjoKRV6vCIpJnjMlgH\nSD1X\r\n=98h4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Atlas Engine erlaubt mittels sogenannter EngineActions auch ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine Action ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties, die für die Ausführung der Action benötigt werden.\n\nFolgende Actions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Der `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dd958c66c7926b4ad0ec843a7f009ba23e7b1f96","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-dd958c-khypuhkz_1606387904382_0.1584121464248165","host":"s3://npm-registry-packages"}},"1.0.0-feature-0d69d3-khypuvjv":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-0d69d3-khypuvjv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-0d69d3-khypuvjv","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"491062da90aebae9ae22b726118f7832fce14213","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-0d69d3-khypuvjv.tgz","fileCount":15,"integrity":"sha512-+WgEFX7tLOf1i13bgF55ADWQgWCApu/T07lfpT1MJ0wybNp6af3rgyPOgfJ+xO+eO3/7QTg1mAjvjRyF8kLuVA==","signatures":[{"sig":"MEYCIQDkc8fCEVC2dH7BIkVQWMRHF5GECoYuAO/kHf5DJvihDgIhAO6405F3+ghPopBG74DgfGEjx9DnajNFYBRUiNRJQleo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":479680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv4jMCRA9TVsSAnZWagAAf9oP/j3sIOmXByBQUSVN18qH\nzsqXYhjSdCE61t2nwwskkOsc69P6ZW0gtDR2/5HErgfX/e2YZt5OvdMFdmn/\ndGDPFccJW2j/heiOQZ1mwIXwtC+nnTEQcqDYD/f5f+Sb6V+vLkUqoVUAhjKB\nykFfPPjl1Z6Cuwk6eIHCtsPBk/ETSj9mPMMfCw95DkLE2zB+ucbdgPN5MbpA\nQH3ky/XkvzYTVJGog1sE4mg4Hn9Fr3cCBPKD770zkEj5vYvYTya63uKksz0G\nD9cB/znbYfiKK6zvUtPktNbP/wnyjOmHWN/iZ3mMapcGURM/D0O95La4cR3J\n02QW9dm7vc/KT8Zi9b921SqLXinXhIoKgI+Nyq1BVL0JcfH+gAQPSKQFIcJt\n0mMo3BX9TeiEGnvGL9WFGVLiQ8f306AFLE+JHF2rAgZDHPZbE5OfWNjcotX/\n69qzchFAyNVYL/p74tG75gEKKHHOZ2cKrY2XI8dsi9PcNTQMF+WALshNj+G7\nY42TXs1OEBWDeDbgYs6AK+TKVGNVIQgvKARgn5OIEttBh7Yy6ju36BBCYYLU\nK2qIIqJSWpmTPMOY6nFJghB12XgJ6SSEcAvDl+h8j9577VQdJKDdvVT8Y3LL\nhypnIrSO9iMvZyKE4yYsYyiHUbDhp8VEacZtlYIJI4EKy0jhO/RKZMxLZBXw\nbB2b\r\n=JG9y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Atlas Engine erlaubt mittels sogenannter EngineActions auch ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine Action ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties, die für die Ausführung der Action benötigt werden.\n\nFolgende Actions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Der `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0d69d3061a23fb65d4ad5414dcaea2297a9638a3","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-0d69d3-khypuvjv_1606387915976_0.07530103768825791","host":"s3://npm-registry-packages"}},"1.0.0-feature-c5bc04-khysyqdf":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-c5bc04-khysyqdf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-c5bc04-khysyqdf","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6f10960f0e7dd1d48c310aba1dac956970590149","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-c5bc04-khysyqdf.tgz","fileCount":15,"integrity":"sha512-GfVe52yimXXJUBN/4D/LBcoywEGCk9ICMD45x7eJ0uLiyFOkmiuxelP5nPv8sIk8NxO1GXOaxMxKeJpd2vWGaQ==","signatures":[{"sig":"MEYCIQDYHt3/Lc5J56IJPPKqEbyV212SbAKSGRcPOmHPHW9c2gIhAJ0PX07Hsa3aHwI4W4LHrIJ2SipTNlxw6t2/117+9ETb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv50kCRA9TVsSAnZWagAAEekQAIBEhg6oOo0mVBCgoGX5\nDezCOwspQZcfZelGGCfXaUpALQJUsQxuMDru88gJRZkQjcMUnzOld+qooxbQ\ndEwdsd27C+KRJcHfBmL0XTtg8XHml1MuH6XldOKuv4aXZuycueV4NN6zPwCD\nNkLrQCPBu+opCYJDz6vlzsmZSkgbpe0r7Ufz8Ff1WgstyZxGwO2hZRI5smV+\nLqsp6LM/+mvAs3xUeDMIeFr8QKfsy643cp6lwi6BFvXXHGYmINRvA5Dp4C90\n5IJv8AcLM1vEH8PMjh2J8VCDKtY4vyQ0TeltQXlGoz26RUG/dxpm+qIot3Kz\nYNT5qKvlhz8Up6/XWHGfxEa729PBnWwaup8or/LqMrU7WXxIPMMEUyuiY9lT\nqe5KWDhZTpJ47WvhoeYLpFC2JGVqdHL6tMsXb0ncUKc/xfeCvAkoDUzZD3Vi\nHiG0nOUpayts7Y9FqB7rXQ4GeewDK3vFG7kZcFQ7hB+hRIghSsJ4eblwWs4W\nQnh9Gb9r2RQlP8nedgf1ifATYvh2YGYZpJB03HRPccGyTig4ugba46oJnyJ2\nYv5PK37MktRWiYhu8vbFGv3YNwwqM6XRIJhvMbv7RJAuTJoWa3hIk59aEa7D\n72sWp8gHNKGCknwvUp9rR1eqSooPoa41H54HfmKippTZ8ouP+y4lRWt0AxkD\nkZXk\r\n=i04/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties,\ndie für die Ausführung der Action benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c5bc04c03eb515e391e6f13a9ce72fbbe26199d0","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-c5bc04-khysyqdf_1606393124122_0.7389536246904225","host":"s3://npm-registry-packages"}},"1.0.0-feature-26ea64-khyxcs08":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-26ea64-khyxcs08","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-26ea64-khyxcs08","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"71c9e2876319e8fd208235af3f13a86f3011f82d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-26ea64-khyxcs08.tgz","fileCount":15,"integrity":"sha512-LZkpAg6q/uRyYDmItbcZHfJvQ85wzPx+B2WvD487D/Fhf2MxT16PXxK+nuoxVeQOCc/Dl7tTTIf+SY7MeSwVFg==","signatures":[{"sig":"MEUCIQDB1fAKNIuMOY2yLTwnKFgIZA9gm9jMSzXCpUOHmS4pkgIgHlcN5hYLWBb8wHWfOwD+YOzoVYdbrj2EOAkoNes2ZYM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv7oMCRA9TVsSAnZWagAAG50P/3Z3C19WtHs+y68ZErtf\nTJTmFdhNrWIcDeUeFQ6PI9jo9CJtk+pBGM+wA4FIfeLvsclEw/grrgebsDen\nQ4++x6EzrGjxMTdK3trjR+0qxYZ9B978BYMy7mla/LPzZnXwYXH2knaRysKT\nhCeYbBHJpOO90rjJLkXO+lOWsn/z0iED93eEl53NwGvTYIqw0Sl3LdN12njP\nIMr4yN2O2aB0M4B3lfnWGQLlLMbl97PEmZEo0lMIhTcgyos2WbfmrUZ9hqE7\n8p9/2jTOnQ1jTFemjipDY0MeNN9BVFQXv+c88dfscULOWD21HeLJlmRaHAnv\n5oXFbTx40Q0Sla9QprBbBAiVejwajRTx1gdIwsWHxrCN/nN+XONi6KWX3SEJ\n7gBlkoPHjlVfHZkS5UEoePPmjvuNESxt63Rvn85jjnqm/aG9MkPSZOb+KNHO\nP1zTyB5joHSf4s8+PYjW6gT9+8AnQvLAagvxs9JBZ1DVmuTDK84xcf+NPlUP\nmV7jgSLg2r8BA+eb44sI1Roo5zh1Sl4RUQOljk0/MVeR9z7zpsygkiMK6Hux\nt6S81bVvthxKJBGb6fi1ARt/OQ/aVx1N9cSHrprhQxpE1OHeeFTVVJD2mXRw\ncywG6aBPQ4PKR6Z09WGsTEk27i0yt1KxUaUaoC3ROtcyvSbinWBuES/9zAN4\nhVQC\r\n=zyNF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties,\ndie für die Ausführung der Action benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"26ea648ec3f5aebc71a0f1943c2ce209f9ed556e","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"feature~rename_engine-action_to_atlas-engine-action"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"feature~rename_engine-action_to_atlas-engine-action"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-26ea64-khyxcs08_1606400523824_0.03826311942425731","host":"s3://npm-registry-packages"}},"1.0.0-feature-1b8186-khyy94hm":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-1b8186-khyy94hm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-1b8186-khyy94hm","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6441751eabceee5db3b2bbae239b98bbf4c67834","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-1b8186-khyy94hm.tgz","fileCount":15,"integrity":"sha512-LUsjzx72noKBSSJBSE9pO31XTgAmy7E8X5/w6qT87fzG46P0wBeIr95n6bTAjd3tNIEZfQYkVY81kUoN0f634w==","signatures":[{"sig":"MEYCIQCQ2k5McYGdJiImFS2ecFhwyVGj/bWtUU8WMw739mwoKwIhANpu7aakE/6FYxb1jqX2Da95+x/AkWHOSvdCXvKR2pfL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv7/qCRA9TVsSAnZWagAAB7MP/itfovqS5NPQSvQnxZJg\n7zd3FSxvLxumKI3CKfhbHQx5+S/9cwqqTFl8qCz5XoavkF+d41qz7WrO3ZrD\n4qOZ7nCdt8llxx8mi+iZxb4+TmyyrcT/ULRbd1n/QoWD4ZlMgqVt8cmjYL3k\nMg7odCFA09zPFg5uzfz2T7AyFXA/dpP8dKAp3AFqegLvgFMbT5IyHzZySSBc\nlXigeMuuyR6a53+tW6/9UCwmp+GrmyLbe5o+PFM47fGiD669JJpKdgWUxzDS\nCRZWc//2SHz6w65bwREj5FPk6+i0ct7DKkGD+FA1KAEQfDQOr4ES3xw0XFtV\n7LGYBTp6JW2r4YCeEIXSmDXFucYzIo+GATkjLPypt3ce8p2B5aaktlrcqXO7\n1JsJtyNNBJsEsoRt9XbQbjX8iCqtmfq8Fqfk1tMxLC+vlQfWJWKJhNoOuTl7\nNTD0Zc5pbLgGeUlt7PmOWjhkPI5yGnHI1KiTeFy0VfJHFJDpnwPPKuqRM9NJ\ngN0EfpxlJGRhmGKELsfNEyucWeETWwcpHaxlYWd7VQFSg1Ac5pewtHLitVYg\nor76nHmMmxzWmazaeiB3zOp3di1hlPXIA/w6DO8sxI7rMJBSdZSNukD1B38E\nENigPDxA0/IG2XJL36BcDXLjVBvLzz+W5DRrZalcSZ9s2UEr4NKy0IV8+IV1\nHDdL\r\n=QnYX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties,\ndie für die Ausführung der Action benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1b81867c0cd5abbf031805be732e4760d245e856","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"feature~rename_engine-action_to_atlas-engine-action"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"feature~rename_engine-action_to_atlas-engine-action"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-1b8186-khyy94hm_1606402026034_0.239765910436057","host":"s3://npm-registry-packages"}},"1.0.0-feature-fc7578-khyyv7b2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-fc7578-khyyv7b2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-fc7578-khyyv7b2","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"986698b72d0affa1f1d8f9031f5b98db884c6129","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-fc7578-khyyv7b2.tgz","fileCount":15,"integrity":"sha512-hH/nY1sbEV8OUF/JIruqk9IWN4ridaCxRCw0EaNLr6WpyaxI7+HRZfBO4M98jl7Y6ehVAFRsSm8hEfp4UL1Sig==","signatures":[{"sig":"MEYCIQDrLhChmbPhHG4ffcFu0gjhcftS+pw8M8bRsc8TBj9TKAIhAO/Woxo6oloJIDyo+9V7rxKSG+DGyseEZK3GlQ8IAKQj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfv8PxCRA9TVsSAnZWagAAKGgP/1NIr3Y/owWaoWY59qPa\nv/wVQDWwo2UAln4JgbZlpFCm2d2L+mrjTmNWOXKlpGXfo2CrviAjbweJMrAo\ncEYn56exN1GqG+2xznHw6/QzmUkdmukROgb1m8TdU0Pdeez1vF1HH4bYpkUz\n3ch6Vm1hY0yiDvXRQsse3XT3UQyBPkVcQ1E6cmwUDH8OKj5eTqFtVGgKBi/l\n+Yx+y5VBuLopMsZ41HbVJY0iRp6vUszRt1CAs0i6gdmXAd1PI4mgUqm1GpNv\nFtCcQTIfD8udHwpErbtcUwOW28xDdbCDb0suD13uM2x46BJY1BqT6BWA9bYb\ndvQTf3yVbyaad9gRF3eoifEyALmJbgp/qnRQVa2As4z9BtIvobuXiG1UAVtG\n5ZQ9CsdR0u0Xv5qnhSwllLKhwugwtqbIpoU6MXCtnGZf/EHby31NSYRMu8GQ\nUujmqWr0pIl12rQxAw2bz2xZcTz/96/Fh5QtejKUgt2p0QXvmrdnRVUiMIvz\nFsWmqD5wTmEXbLOY8LQG8Jv7diaiVVkyo/RSq/cmSVDXha8akkNUV40+iz29\nNgPXHyXRsdfWiKFxgrnFiN+89nOnBHgYV20YqmmeeuB12waxvFc2RDyMRVkH\nR5CBOZbdm8Ld8EhiP0eOZ5dQIgDDSzAg9WovJpF/khBe3ORlA207r40tOOxD\nnX3V\r\n=NqVL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties,\ndie für die Ausführung der Action benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fc75787f76c2bc710e78c5a23e454f440b7930e2","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"feature~rename_engine-action_to_atlas-engine-action"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"feature~rename_engine-action_to_atlas-engine-action"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-fc7578-khyyv7b2_1606403057078_0.7492413973271703","host":"s3://npm-registry-packages"}},"1.0.0-feature-6fee3a-ki041i0u":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-6fee3a-ki041i0u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-6fee3a-ki041i0u","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a20fabc0c9733b0fefcc8e06cb5c94b692a95e8d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-6fee3a-ki041i0u.tgz","fileCount":15,"integrity":"sha512-3V6HP9KTzvfxBberu0dUrn55H6F19iPy90yOFv+Jejrq+WW9dqrXRy/dvDQGSldCZcUJTnAjGdtF3oEWVu3LLg==","signatures":[{"sig":"MEYCIQDTdTmdjJhKS9UK8n3PzHIGtutSEKL/F/TBsuNou7QYcwIhAKkKoq+77nLJTWiYGOd+04EtSU9AxwZS1q4U1plSraGo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwNITCRA9TVsSAnZWagAAx+EP/2aLR4lt2KUpthIcD0YZ\ntdiitF2/izdsKSGmFIKfbsRKQUCJJboYJYmkSCp42MSjy1PdzQxp3BwP+Kax\nOPRl4AkO8tUF75zwm2WJLgWyppLy4gJHtM+aB3JLXF5CRWkLVFxX/Mk+XaVW\ntP6NfkIFTuROhW4VeAbMeMgSDjNy77j0AOxtw8plNGj/U6Y7hQUjhI1uZUWz\nRwGFrdoqQlzeiBWiIPLEkq8JAPnAAWX6cHhnywg/UTQzjkJ0YIufTa3+uoiz\nOQmZYDfB8XnX53cOhtyJO+1KNywk30Iv+Jhy00giNKZZiYw+xf2kLFTB8iHy\nTxyCfjb1MHtlRUrfDKTQI27lMXk24YQ5gtKULNOiPxfxno/32TTcJWHfvWB2\n18iJdUpBrdIg2D0AuCqgq/uqY5Jpr7uwEKUoy3TexzdtU1/8igWXQ99DQrvf\nPOHQYTMS4IAF50Cp4yxCl0/yi/02X69KMu4IVVsuoShayZMWGngNL4LhdtBk\nctGRM/1JqGAeKKK3WEl2pMLW/GOLUHxcHLR2e3K3+A992jumIrJ98RjtDc7x\nMDivnRZHWf/hsWQdf/k8aNPjelNOnQD+WcL1NZvFNAUtuJ92Yzt7kk7FnY9o\nbbYIG9lTN667aU+WT+LMarF324BhJ3aTvlM5hzj4IEm5yz333DMPf4mMIzLw\nMwAY\r\n=FUrw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der Action festlegt und weitere Action-spezifische Properties,\ndie für die Ausführung der Action benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6fee3a319888a1c1a8637bd6187afc23be519f10","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-6fee3a-ki041i0u_1606472211031_0.8267904660904573","host":"s3://npm-registry-packages"}},"1.0.0-feature-c659f4-ki045klo":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-c659f4-ki045klo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-c659f4-ki045klo","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fa61e2512122bf4d037baa49e8154a33d1c065e5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-c659f4-ki045klo.tgz","fileCount":15,"integrity":"sha512-jubt8oO4asvRB1LMdAQmGFeJy+Ob/IHPZpmzpnu2rJUKE8xiHfULPIDxK7DTDyXP7r3jjtX82pk+PfiL7JU4SQ==","signatures":[{"sig":"MEYCIQD0kGMWE48EgMuQqH7zUPy40GKrMtAymS1ha8T2IIc4XgIhAMdkfj2C7eqxerxoXkXxvT1wyEYp1LfZz9gkkNAZggVn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwNLSCRA9TVsSAnZWagAAbRMP/0wWoGKmNo853l6q5aMu\nSUMtDckyGONTX/qN09C64632faHp0nN9/GrhVcqgwgr25hitCzL/5WyiBtGt\noGS1Eni96cZFqsPd4fNJoBZuGR7yFI3ng+cDjth7TREBh1RdhvVLppftHWTG\nBJlNrY7OEtrv9+9R1MqTtwng49wNpK7+lInbEqKUT96+rzhhz1VvvVK4cVl4\nK4sLv8cyN1ohTilNff9nIwJL8SxvAmUWKRscUZUQiCqn3HmS2pb7hG2GnmL7\nKeOZbgQB6C9mK99Q6AeHVXImzhWsYcY53A3ik1poY+FeRePQyF19T79E9llZ\n0xVZ1dKPS4ScNnqR11uQi7rRPZjaYJSYlLSacTyofnui47hSuAhmSmigbkS5\n2nvF4tw7ju2oVXa6cFrudleJvNFQtupH+nc6Lfy89ySVRg+w6evA9j7VxDfK\nP45wN70t/u+QkITkgZE48p71L8wp5Y569aAB+tX8ZDyfVini68pFunSkf+8S\ntVcwk9LKusNduLLHV7zh0eC9SOTZj3rxum9TVPkP1FA1pyOKWH5qZaII85is\nuUAyL/lPeWplzCuDzr9kG6yHiplB1ezMH83WOW1VLjHoDpLuN3++3fmkAH1V\nMxHPJRF7b01UZIcfVIdQjtN9GGlJwLy07DDAQ/PPKRc0/P/adOY7PGoDo4MY\njDkP\r\n=mzPE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c659f44a34ce5fe61c7e076309247327f78fae5c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-c659f4-ki045klo_1606472402264_0.022343320771930353","host":"s3://npm-registry-packages"}},"1.0.0-feature-f749f4-ki067wtz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-f749f4-ki067wtz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-f749f4-ki067wtz","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9349e29f05f70c552ed1d46e3151da39a87a2397","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-f749f4-ki067wtz.tgz","fileCount":15,"integrity":"sha512-QPiYrX6vrXIcVLXvXO6/NbTYCxUXP8MUnOj0Cnb2dormuVOF64ErzKCpX7GqY2InkAidfUPMTC+ZCu9fM2JBcQ==","signatures":[{"sig":"MEUCIQDL6jQEVi+Tpj1Dqbt8myYYlHJd/7MD9hEbQF73XvX4EQIgKyHTuY1qumZqszbediy6Jc7TkRj99ivb5nBqhKiprCI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwOBbCRA9TVsSAnZWagAAb2cQAJrEYRC/vmBXxauedgRC\nySMmfWBI+pQWQ5ysYxapHS6BKFlEPr2dwDepp/7GHEHxEOG1xqGpaF1XvoR4\nA43h29dDzq8VBTABYIZYI3JKvTmYHQQq4+0AUIM6ddgJPBud7McFFoUO9qi2\n0QDdOPVXzXj+SN048R6Isc3L69ZSIeknmmIwtuO06N24pj2K3W4/Jqx+sDEs\nR1+lI860CX2eAv42tuaPzu3ygDSUo9wGGnapmpPW+OiEW2b8LCw09VicNOA+\n9Yel8XHk62S8sT1HeUIx2CNhS5mewFaV3qiABwwf+13PLmDn///PZGxChd50\nOzkBCsniOtrE+LO/q69NtTesmvdGpV/W6V8Vw7p2JBRzMVh4kRnSLmY45c8m\nVrcvUdjAeCo1kHvLGJy/ksixcpC92J5ahmWWQgqUTKqJfmyOghS/zzPyLStI\nK5mREI1RR/mGoFMs8WCSBpoamG1V1Rz5Ygnj9t3lkhLYdDMuwcrzVbn27C5s\nJaQasxzu9iWNDlnt8OfOQtJVoWgfp+RFiDTP9eltKAoHMVI6KY088YOspoIt\nDfgP7BATvVMMo1uVTN4iG+QqmR1ISB6twPU8bLOrPDboPhLjCk1RJaiBpXb1\n4e0x7BXaimsTX8mUC/OjXca1N9zFvpqrn5IsA/fwE6f4+ViYk48hEQjVQ8tm\nJtat\r\n=sXao\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f749f4975242753a5063e8c7ca853cf0d78af26b","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-f749f4-ki067wtz_1606475867170_0.9419222163732799","host":"s3://npm-registry-packages"}},"1.0.0-feature-19ba4c-ki06ui00":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-feature-19ba4c-ki06ui00","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-feature-19ba4c-ki06ui00","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dd8747b6897b251650dc7127f62a5b60c5386dce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-feature-19ba4c-ki06ui00.tgz","fileCount":15,"integrity":"sha512-beqIfGcqcUmXJcB384l04BpGyp/XaD4NQ2C6K/xfWIuMEL+z5QYrcut+EZvvHjNPWk6yV0cbr5w311q620wT9w==","signatures":[{"sig":"MEUCIEwEZunQxIlHCm/I4GZoQ3Rme+e8C/2FUrHGRmxNmyocAiEAs0jHtQZcvuVtMrxlmkWXdamFZhilAXtotOI2ZCAyDnw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwOR3CRA9TVsSAnZWagAASeIP+QHEhGvyAI482u2syfhI\nJZdDWOcPbV0/lSpTerO7Kez6QzP6aa/nsDOFlHph1T97unzfaJxsV4FgyZwa\nxcQ7yIg3S2P2I23IKsdFxY/0TH6rKNRtQKQATwUMaaXK82jcxIbhzRsIPITZ\nwtWX7GyeRRWj0TfiEhL1+5j2SyonjKhZHjbXkNkz3KvZ3iCHDG2AM60fZs13\nrCLeG0WT+DGvAdvY/UmhiyigS2YgyLrf3Z+0SdPWR0jdvpHzy315PCL4bu2q\nkFpQJ+llgSmWAp0qW5GbVn8QdbEmUdW8y/t8aW0ychygaMHtRx5+KfyzJdWL\nWJeUBfxtoQmFvJlMciO0x0M+E2bi5g67poEVDYDKQFsaMW2QBo7+xO0Nidob\nHsZxlqUCyraiSuG0s8BD7gORNNdWPOGDfL6XHBIwWeMDuHovfflY/0P/3Mm5\nDoq0Pdmlg2WtCD23zb2fYZtA2lJF/lQI701drl1sUT2reEbzUkSk9STkpKyj\no/oc/+akPMVTEskv7OcnCJ6CXe8btdTyiEV7mgB2dAr22jCCAtp4Xq9sS6mW\nb/GbX/AZgIhxB9CsvRSBM49a9e+t3tDk/Y/1VdOOdmPuRt5Tbrsxh4BRFh/N\nFcZiSG2m90O0i1sGgz5ryKHhg3b5uDXfmkVBkjilx3AQ7cUmd9PcNLuZocKL\nCkGs\r\n=j6Jt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"19ba4c81b13c1bffc4a99f1dd183f3384b784e57","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-feature-19ba4c-ki06ui00_1606476918564_0.5835196868973178","host":"s3://npm-registry-packages"}},"1.0.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-beta.3","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"84ae78668f292520939f9067fb54d0140af763bf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-beta.3.tgz","fileCount":15,"integrity":"sha512-l9Qdoxhmxmlf8+PIKdXjXbOCUJb1XUS7btXbKCJnrndR4C96pUBQh3WX/AUB8WHcjQbjw642r4RpduAdIq0PlA==","signatures":[{"sig":"MEUCIBIKgBBJu6XmWN1eBIAoE+Qz9J7lrtpwdN2GvdUh9x13AiEAk3mFjW/6pn2hSVEoLRvliaYigtmpBip8klXaLuIU8cA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwP4kCRA9TVsSAnZWagAAepQQAJ1i7SaY8lMwWgVdzpTN\nn8BD7s2R9YMTx8SPoFmvp2MH/WMjcKpqS99tfh+1v5zHsjCBpTGes2XfOVfG\nS5WBFmslPrwtCu+nedjb9jgq0oULsa/IVeb6IcF3kVK2zfjPp89DhpS0dQ0M\nMP4PMyxE9mTKeVy6aP0rURS97SNKHerD7ZTOljSZs1kY8wW4v4Hj6pl3GxHe\n3wuyjWmeY7FJPURttO5xRKxAq+GEs7MUzn2NN7kjw5jC/tQu3dW5zKaQHxl1\n3MbODUBQ3DPWTJmIN7UZtTSmj5KLho22NgTSP9vYyjR0vb+s5di7yrloygAC\nUXxSbt7zHXXvhGsOgEcynlSLHcjj+mobGJaVE6wnexGCdawCf5gbKWBsdUHr\npIkcwO1ST65QsSph6IUcCPy3biIwICdETHuqBlyEPz+iJN4vLPyvldhJ6fWv\niJL7wPBpm0uxR/17xXItPbbvdkEpctB5e2We+52Jc06U5yljmrL78axx7SAl\nEFKoPqagt+rJn4ZAkKZrjFoHB+X7Q6pZ2ZnYOg4n+LVyZgy66DY4OmECcb+j\nlfNeM6cOStdDioszBRb4+DKTlMdituT9MS8vwfRzm5p5wGbX/uw80XE2MF/H\nuH81tMsyhBGMr7JfnDTjFF6dFtt6oFx/6jZaDXlcveC9fKCwQUMgRrrp7B3E\nNwNQ\r\n=s7os\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1da5441af218a0c2e120a0e8ee4bd9db40608bc6","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-beta.3_1606483492089_0.021970510176976044","host":"s3://npm-registry-packages"}},"1.0.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.7","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3784348235e500538a8c2b110a854babe26e36b9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.7.tgz","fileCount":15,"integrity":"sha512-AFbd67vzQtpbmCdfXPbZF5jPCt3we8OQhvlqqbkFZf3NYvfrtsAtpiZzARicqqBD0XdiNkJdEkZpW8K3eVU+Pw==","signatures":[{"sig":"MEQCIGlD9YGDphBv6GuEagY2pkzPEOHu08LRnVbzjMYNb9qQAiBrWhYYP//nCZDQ+GR09efb7HUEPMhtGpI+WeQWVFV5Tg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwP5ACRA9TVsSAnZWagAA0ekP/jQmd5QiPpr7711vwypv\nYYwoRcevZxayJRIZG4cbz1esUoRmsZXiNs7UwRD4j4XpHPVDH6tOOzqRXYnJ\n2ouWuj0BrZDf3FwqIY5mJWRiK1URMNbgNNbKPOewj0HuQyRURa5m+PXnwJ4d\nthInoLGTGJd/fpgdbvA5CgF9yA5J3VPm3OUr5my1EE5RT7b9BaFjZKIe1ETk\n2XZsygdQP9ZHPfpxdgFeSGb6ndInK8AeI0nzn+GED7pqcw8+zsaroZ+Rfv7N\n4tr7YvxfB2rGX/0mLuFsBD002p2Etw/zwnL3djk12Pgyki06fTrTecBSV+4n\ntsQ8kGtsj5wN4tqag4Rew/0C5WUnlFwGVV4LjMeN+UWQXqf8v98gVGY7oOq4\nROvVcsHF+9xm+/+0ctzl+BivJZeKwCr86Oz7jjAo/MAT42oFuIo93OUr5NHy\nIkWJLPTU6s3+fHuoCUuFKoKgZqIbBUQ10fCKjAUNGAtlnuIRiabi5EbI0DhE\nOKt3zusGk0pP9T2bS4gjLOhJvWjq40vwNJ6iPVklYaxptIPNa6K3vEAqzg+p\nRRk25H7FVdJDlJ9/r0LWHJ3WlADibEuCT12D9HE1eoxW5DnJsa5wVdfYEjTR\n9IdgUfdpf122kAjufFpMOdNUt7sL3VWx88ry9KU1jusBLBPyWztF1b5Z350n\nkPTw\r\n=ILwf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a8e109b237121a787ee1796cf094a81ba0f8136e","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.7_1606483519894_0.8979014801557923","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"91c57db0f74387e1d377ae661e2c8f3f46953698","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0.tgz","fileCount":15,"integrity":"sha512-bcK65D3dOWP8oXJVbDILfJ56BJS4HTYLBMIUlaLGTJ2Y5gqxqju+ykvDozmt2nUnOAk1CXNIi1iT7pOPpDbKBQ==","signatures":[{"sig":"MEUCIQDFvUCXJ8cgO5cDaDld/bD6m34qu0YJ4tdwjFbyf2t4bAIgAp0TzMPyxwvzk2B8wbp874YNhEPHdKriCzv3ZR08d3Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx130CRA9TVsSAnZWagAAQIMP/3lNXYY6l/agwTp7O1kw\nL3k+b2sw0ENy8zcFEXaj0UWO4SDLo34qR4o17m0gtiJPvEZjl3ZXdBjmO2uM\n3qYzfYZH1HP79z4CsME4sLlQs9un6F+NrBRkmNT1WHNLskr1nzJBE+rpTFkx\njaMbqQQkuKxGBxfhYgLS6V0DqZUY3ts+Ddac6PjbAO560FKAFA/irjp8hI0U\nT+/NgxzvmWziMdedV4nki8uzHOqnaKnfqG6f7Sdi40jAQ11YMrueLCliqJ9b\nKuz3cG0an9E3sspsucbIWQrK1fWWI5NfJTib5mNee21j4uXyN3/XhyNc63FV\n/IvJaOaGOwHpXCacA7WQUQS0wpoVXudEEbFTIY+1AaH4e/EdKS2iGk+ES/0U\nIfBKPeXUowh0h3aev49IbILxU7t1YRL9+M2a06V4rWM3hoR8X50Fg7SUYbPR\nYtMPtLy4OyNcM7SbCIIYFkKHl/kWn6RJRRnJIHwYZrDCCssRgwiCG99B1fm7\n8FVa1HTHoZDYvNnrIzlivahrWzfVyVJ3tzy2Zns6y9al40b+BHRWn5b8v+K8\nlxQNkJDE7Hf8LMOMrUWNMF7S0MnVFB3mndhJHTGxpIdji5bG++ycasMtp4je\nK7uWOwRXIIYz8vuvXvFsY76lqUsh4is25J6kOa40h30MkwywPCrqI5kntzws\nZacw\r\n=GJaq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"e793151e94f5f5cec329ce12b8ba140234c1e850","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0_1606901236501_0.9782800592314611","host":"s3://npm-registry-packages"}},"1.0.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-beta.4","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2ca77748c849a7b4c601b86fe3f600032de1f972","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-beta.4.tgz","fileCount":15,"integrity":"sha512-0Q/1nfJDoyhiMMsGZhkLZwHzfNvjeahLa8FVSgRjKV33SF2SXmbHNCue064ngM7PKUHbqD8CROMpGlZC+QLMdw==","signatures":[{"sig":"MEUCIQCPF6jfGOYxhtnDPcBFF02cruGaB8hc6DNItDXlDFj8iAIgXVWE8jqhpu9498SAjfowEKuXSyEKF+KaUEE6SahOCeA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx14DCRA9TVsSAnZWagAAi9kP/3Bo24QBle2NInAsI20X\nV4L73cHM8APkOsrJVAx6Gbn4+hFfxZCbk+wHF7B0wuEn+iNHpDPfB0nviqcf\nn1wD0c9LRiEkZsPQzPYPlVXN2pj3MxBGSEGEGvjIlM4YWXtVCCDN5Mf0U51o\n5dgNrUEIgRcMBXm2215gIaRpoQJaHDzSiaHM3kPwoZ2LIfHZxnEjcEzQoqkQ\nJ4kCfZcEvsH+VxEiLT8WtU158dupsZ8y19iGH9gY2OcLxnmI8g1tOLyzZNnK\nNjbboPOS19DiM4QzMFDElz7Kx6JUOpVWHpYBfiXeg1DiSSj0VEAk4WAPfr+6\nhPNJIJd0V1c0XthC69fI8mWQnLF1Q4Sd1SvKwP8DcOZ7a5XN6lUvnMllo1/i\nXRj6ewqKr6VxG9A5YpQ/9wFQxHxGclGzUZJDA4CidwXjc1KsPFPe3rP1mtto\nIqqq19zGPwl5syf+6ZvvJut6t7S5SNCbvKriB2UltAXMnzN3CwxejEpw/0EO\nuypdXR22QudtUb15eST0wK2Vx+9OLZfVn0sjaPb72Nsa2JcP2kg3y5sXzfsa\nvHODFtlqbcvDTHgC9XfQK8Kl9mUhebUL4DiOPusdIC5P/EpiMVmpwtvuGBdx\nE0k5g1lVyzn82pzaVSMBgytd07XkeB/L1iQDB1IZcnRB/SD/vHULzPRMGqad\nslmo\r\n=JcJA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"73626bf41d3c23d1d784d72d176678c1f454a966","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-beta.4_1606901251316_0.06399193100661638","host":"s3://npm-registry-packages"}},"1.0.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.0.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.0.0-alpha.8","maintainers":[{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"52a3da121a09d629524be5dcdc160740cc7472bc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.0.0-alpha.8.tgz","fileCount":15,"integrity":"sha512-BEzuDYUmrCzmz+Vfl3JkASJEobWXXcqPxZfRXXxU4lF798MZv4il9RP2rCbW5svPvGSoxB7JjLeeB9DDjvlg/w==","signatures":[{"sig":"MEUCIGJLi7ldUiW6+BDBzZXuYuxRzEZ/20w6xOzNTaOmX8S7AiEAmJ3sfmtvGtdUjwm1VWUh1Q95t5Aw03r/UfCOp5eSK70=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx14ZCRA9TVsSAnZWagAAkQIP/2jHaQu6YdG5LC1bxxrv\nheboeNOdda4iTrwNIEGLnVlgBMi4+klOVnqNMRBAVM674gvn7NIfuQRNyE4l\n8GkWAh+Y8z/SE18shoafkgJhO5KudmTh5EzyhQFqbJIw9aac0NiSw5cQx/5l\nrglmW2yXkXXAYjpvI4FT0JdxrCmkT7TG7YOMYyDmaTtLqQwOhQBDNFvjvRnc\ntgTi3Hw9la8F/oWPkm3bBGKbKlJ0zCuWQxS8PAcFGwF26QQinglHh7h677J9\nijlHTJDlJvDrWkvCDlG4IJXj+vnSFWGtNK+IJd59jDJno1XU6zL7Fx9Subt+\nSU9yVNn3fP6MdY/zesvEzVxrbtsP7XREJGhQT/Raa/iUqxHbCLVxWxZao++X\neuZVj8I6dDdqhMJbKwvYPelIh6Sc6fFboRH7gTbHqPKGgn4eYVFva3uIbEsH\n6wmO/y6LDdpdoKgBhWt8qgeVJAos5X4e1Z1tUpmN0pSSlPYOnkeT76mSVaIT\nYH2jFAxEOu3sZTG2GwgxeQkUiT/nuYZkDe9pcad1cPQOY8pBgCF9Xald7ldD\nExIX0T05T2Xl2kw8vWZMNFkz11mUWtJIu9Z4OB7yovThnISl7xySeq1XhinG\nM5NNKydxmdmPdfknNHuUaVwHFhDBerUEujYcb6o8XMI4mXi1Uy78cH2x4ceA\ntGV7\r\n=w1NA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"afa801b95147729383d9b9cc2f50e47122126673","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.0.0-alpha.8_1606901273232_0.48729011842307335","host":"s3://npm-registry-packages"}},"1.1.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"91e572e1b518bbeb84e2676cea587f71a47948fa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-alpha.1.tgz","fileCount":15,"integrity":"sha512-P1QsorYc5LeSXAoHfSD+pKuB4WShXiRuPsMipM3oiTfwv+eD2FIeMii0bN+e1WF7rnNcB/mHdJjCIKc3Hi1Izg==","signatures":[{"sig":"MEQCIDju/xc8uTfl2U7iiF3OrgR0DRYwFVh2b49fqu/9Q3YcAiAVTU3CFkIEIt9owe7+hsJEMfayHHp5pDGE/Gl7J3Gj9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2IA1CRA9TVsSAnZWagAAaNYQAIZEbODHlvt/Zt7p7WKp\nROy2AGymw1dukbZgRO70TDNfKcJU50BP6kC4pjNzNuXbCKNufvVXjbqhLqwv\nVY9OVuwe7UMfRWHjiufJogznmSUn7aacmHOkPwEGrf17pGtuYgHays48s6Ty\ncNLk8r5i1d+CXoQeztYYYhryhDo2LDJApbYE1bFDGEG7fTe6LACpkGmdOQzt\nJ/3gep8wgkfFZS/XSaF3r0aCk0mzV2O4NnMr0unQNjPZtQGCd4lgHDggS/Lh\nyXzhU5HkoOj36OGGCd1nLPz6Uxehz2O5Gg9pzefV7pQH0plbeLAQQFDqteRr\nGHta6G8UGXesVTbQFnHT17foVXb1F3V9Q5gk3pgoGMJ85CRT/CrB1+OYWryY\n6p7suMaNagnTuWJu2N95dCfagTGSJTe4OQ9nJVvRbVXf7NsoPE1mFb+yVujj\nUf/7/YW48uuin7rut0q5qf+Wu/Czh/cbcBOMYGbaaRnveAmISOFcpO35Mf6d\nZYzmImLk5VOQEksISJ4lBb7Hcq6tHjKYQqOV0uEjrnPlfdgP2bCK93pxjrcB\nAwxqA4aGOfE9g6Iz3sYwheEobY/fn4aNJVTwHtOLsVNpDEugHiWwqGg9oCEH\niwqaD7aT3mCr+qToDk1qxo1RzGX+xm6IpbY0+NWwelPwBW+GYjrgJsfoao1B\nY0i2\r\n=kWzC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"849e76f386b5ea4b174ddf2d321fa5f625550a09","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-alpha.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-alpha.1_1608024116951_0.9745637680883483","host":"s3://npm-registry-packages"}},"1.1.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b4ef0298aeec83101f62e139394af3b8c49c2f45","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-alpha.2.tgz","fileCount":15,"integrity":"sha512-Jhz9ErSVx0fRAI4lgRrXY0iEb6RIbE0SVjF8SHSZ60it0jdTnT5RliLD5STrt8RGaDG0ab/CfG6nqgFTmULFIw==","signatures":[{"sig":"MEUCIBG1tm96o8iLhp9da4xBUXlH+Ay6TFypswZZjYcMGWgYAiEAvdwArGjOKCKOsOvN9/0VnPZOoEDxLz1nIZAT9escmqE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25SsCRA9TVsSAnZWagAAW0EP/2mugDmnY/8Ou4zHfEkg\n9O4LzU5zFjxOV0XFIjRnYj7nLieNleFbp+8Ul1Z9r+TVqmrq88YeDgPmYOtc\ndMMeBNtvyAc4jV87zxoLbY2I3o/rDI+giwix+zyPrlaD0wNhcColbCS6bxKW\nq8CuJi/nE5bb8+IPjjxpdnRuQ3tFWx+5JPW31yf2HJgPeg6hVewHVEoyIAcx\nXjonz8wrt7gsPZwMtPNPChd2RDFZRohbRRWR7NijglGMK3/dPaXLNkqy1jg3\nN5dgSQdRUB/wQsa5MmPjGiQrQAOt6UeWLmHx7kPkv/PVMg8bDq0RT2dfC/22\nx30uYK4gERJHSKox9lWb3MrcftGmg2josMgCRhaygJy/lirNpaHFEcGCUCiS\nmGqH740LzMRbtriKorIlhLuutixnIhPiuz7yQZMMqE92bTaGTS/5UGIZBTJx\nXFxSrDdsP11BxxVVCm+nJ34dZlz0xyPOkqXyiGe0//PKy/HSBZVxgS1SSWZ3\nwWLeaVe9aqBOCFK/NsnblAx2W6SFABwHrPB/zJxJW7XiI8dqTIh0bhX8ivyy\nCNW3J3PI4NtzqFF4o81zmmU39h6AMjRdXueBb5s9mglr7QFLRbOL5ir969A2\nyoLmEnhqq4DUSi+kwEO/ni9jS3jQZrkMdHfA9Zp/oQHVAhsd/ZO6jKfwfZIl\n3dVn\r\n=ThBB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4a55e208101f15eb9385535513e815c81e91bbfe","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-alpha.2_1608225963507_0.8503528447443776","host":"s3://npm-registry-packages"}},"1.1.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ad3010665f24e76c6a13cdd87eababe793af6017","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-beta.1.tgz","fileCount":15,"integrity":"sha512-HEJ6obGAZdo+pomY403NcQL9fQJWMOnJdO8NdwQkadQbrGil+PVNLhRWq8gve0o8x/XU/2r7FIwRp+Id1AlOhg==","signatures":[{"sig":"MEUCIQDUlYXIt9n8fk4S61BJsewOqlTeF+fxCWnY47i+D9RkXgIgeaVXYbIyG4Qip3efkWm9p14zS5l7nTAovXGBPk2BsZ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25S4CRA9TVsSAnZWagAAn14P/3AlfhQGe/ODE1fVz3dU\n+kz8a6lzg73oDpt3wPo9zMpkJLFyGiHFPUXOiGvyePwkFA2j/oj9ETzeSl5G\nUhxYCv19wxLnrGIl1hyv2LZFQVBV26c2huMR94ROrh+YyWX4CT62pq9594UG\n7ItXYVUP4H4k/08KFTXHlKR4BA7NFl3NK0SBltEtWJBQagxTwlfRMr1RSEgi\nns5mxk96Up7peW25gw6OsWlpkqhuBXmwUtBuXzx3TkL+ADKdqm+50RDtI+TP\nUZvVMYU7h7pI8cGms3M59QaTo9nPbKByG4cd2Ru6rj0Zss+NK1PgUXaKbgAa\n2PzYnC2mU/yZJahOGqYWXQUBrc4hrGDF0wFqk//A6bQCX+tHhAl8mK7rHjB0\nCQxS6i1ogDpcdkh+3HisgLwehihSjyIUE2DocmbFzWeDpHnjs2vyP8CLNlrF\n0uR8NLy9cXdtmhaVcqYNOEAdlKrKIJAUujVH1TrQPC7k+/PcVxCzT7cWznpu\n0CaGY35BzWrSQC4lBion5a3+cH73QdRE0fX5lw1sfsHQBLAv/5nUzkEp2wBq\nysoEGH2tN0Fw/sPjEjunqe9Rs2AJDLTyCov1VFfzc+jv1WY/f3kdGj1yW7kr\nAQQWDy0nHFC3FxIjZUAhPOBt5ifxail530R1Pe7omjH/8ZULp5VqOuS3nZBK\nFKfa\r\n=AytI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f8f6a59f964718ca69290b7a5f805d5e91b2c161","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-beta.1_1608225976143_0.9709847145759689","host":"s3://npm-registry-packages"}},"1.1.0-feature-44584f-kjk4kki5":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-feature-44584f-kjk4kki5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-feature-44584f-kjk4kki5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ceb22f9b34e796afdee49d419ddab24dd4c52096","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-feature-44584f-kjk4kki5.tgz","fileCount":15,"integrity":"sha512-1MrBQJad7FPBOkRr7MTqKjfN+KAHlUtXBfZZ36agT0gin65KPVFF4bMxvi7nKsYFis1N7qTOw0fvgiJn7gee7A==","signatures":[{"sig":"MEYCIQCkHcmkHIvf0WNHhk1edNiIZHd/YM8wnyLmiI7l8FoM7gIhAPKu0wDf6BBit+4ESdM7RTVmtniaJx+YqFFkXrEYnkc+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":481094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9ICFCRA9TVsSAnZWagAA+YwQAIvk2pzsmJO442rrjzSI\nwwNHmAKEl/auea/8MYh7exkpnYwtXXIxVQxcssTVV0xhPX6RtlRtcQEza9bC\nqFWGTOn9lXVPcdCUurjwZqVR444RRvIxBfXxfuHUqrs2d5iHLB/wehLIbMKx\nH2Z9yz/cgI+IBLscfSbDUaDLLrBqgda1ErRGJ6nTh8i0PwnMEQBKqs0343wp\n9P2JecizJWrwnMSSfjpFmf7HXpaf19FhpcFIY7Z+60VTeCtpngJ/Vy4CqYOA\n751g6CNy4hgIJj0hYRKtJ+WevPkJfM4C/sA3MTNQvHfrohBH01xP/830Pppb\n/02oex1RJy0wNAzkg0MVbncfSG/Xk3NyGzphwTb6H8hjDRJSpLbGgJpBpumu\nQBrayhSvSS/xGihFk2u+GqAYT2FHVbiyiZ7QCmMh7v86B0ybDRFOzb47VCr1\nflaz/ZDj9+MRnz3nbXqvSzh0J4ioqg/a94SyTv7fQru4jv3JMy4F+zX78ohQ\nLfXBeB1lAsFaRWW5fuD7Q9OC4BgS+sFtHR2qW4yDhEtMUeC5uk8AAGe65ULk\nKgYlNZ/o21T1UE5CW5J99HMxGQmOYETaoPvF76BPsGSNSddPNzmTeuR6155c\n0OUKuPxJa5eUJkkNQcioJZaAVua2YnICwQ8ehrtEU80UJxm5MYnLy3Ep5gqt\nhvTu\r\n=Ntqc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"44584fc726c4e38d3d08255dc416cca200fbf06c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"feature~add_removing_of_middlewares"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.1.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-feature-44584f-kjk4kki5_1609859205415_0.13395566798726444","host":"s3://npm-registry-packages"}},"1.1.0-feature-28b32a-kjk557jo":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-feature-28b32a-kjk557jo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-feature-28b32a-kjk557jo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"adab684d68f4bea20e83f46f3520fe0b3bd51cef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-feature-28b32a-kjk557jo.tgz","fileCount":15,"integrity":"sha512-5nXc/bwvnevxNafXK2sI7OzSoCR4laiUP1K/4ZBiPCBtCC7fNyWM/c7j9UzS+cum3oCt/jgnO1TI1V3gJeisOA==","signatures":[{"sig":"MEUCIDwEr/djNiiZIqC/vrZwLVH0OdJ+W16ZvgYxPtWGdl47AiEA49zx5BgxlrzRFTQsNdiE9NOdh61n2F6lxWuNJJO1Ugg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9IRQCRA9TVsSAnZWagAAWZMQAJZ/ug994FZRd8tvLT5P\nYjaJBd/cf0hVioz2o/M1jx9qPgTDoxL92Oaq9Ng+eqfyE9nSaO71TmQYrCXf\nCQQJzHG0s8DQIVuoP1xYMBunrWA6MktCOz52pXjcATKV+dV9SjcgT6ETu6t8\nGivD7WER0fEMxghZ3BOWzFVyEAVg5q4hZQ7GHq2c+34B82skoekGNAmZ3HUD\nvLOQL1WtHpxHIZ6Q1qzq90qCEYzn13Jj3qPsqy6CbAzijgsXZVWa0j+82E1H\n7/OwVj180USLVIdZRVanzWvEkUVXcLdXbXaxU4Xun4VC/2eriUuzqLDwenDU\nFJbZw+SGS5xOSM+Hoqvg0ReoDodcjscN71J0oyo4Ya0Vc+xouxcbFLKwK02x\niQ0NqKnUcg4QXKYoL7QoU9RBIjOqyzpLyDKLg0+EMuUiclMF10ZsvRs2ftQH\n8swXdkz+CMf5zR+aHDxsvpTTiV5VDZi+BKXewxNmqvAcMSus/gaQtG4l96G9\nvz7b51v4VxWF1v7awBjfTEzvIgW5D1nlKfLwHvsbSepidheMz5k4eSuhZwoQ\nd+yhAZjdz8CvHIpUxSVPuqptbvuoKf4O0cgbmpxB1eFWnBAWcfRbQ4pZGuvd\nxz7JQGKer9tHw5kEC/fXmplD8/eiVEwuAgHY5gKZBdXy+dcLOPlKwRrNZz96\nWnIp\r\n=ZXdn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"28b32a080d8ed7a66d91e2a00d3d6e94af14e1c0","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"feature~add_removing_of_middlewares"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-feature-28b32a-kjk557jo_1609860175647_0.8071021606213018","host":"s3://npm-registry-packages"}},"1.1.0-feature-bce653-kjl96s4u":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-feature-bce653-kjl96s4u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-feature-bce653-kjl96s4u","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ce24d3d83b7275654697260748b71a25ff864182","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-feature-bce653-kjl96s4u.tgz","fileCount":15,"integrity":"sha512-ywxLT59xIOee6FVZv3UiU5prE2yqPxfi+EPK6JlGttlzIHXRfUJ1dx0NL+FIxyrb3C/bgGzZyO4c8/AAGYHcqw==","signatures":[{"sig":"MEUCIQDXTjcrNZPDvboYVFgxsRRdJbEm5UO2wUWQudEGuPUbggIgInVQb0OAC+A8pWzG5OArX8nrruHpvoHy5aesBwqpqao=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9Yr+CRA9TVsSAnZWagAAsZgQAJA6quGiEOlyRikVIchW\nE5BmK48DN2LbAJfaV6ywNl1ug1Vnm/vd5AOHVqh5J9v8F0npOdgMqCedzySE\nlbTSZL+eeQFAg/9PjSZd/GgtuJm2td0giAwNw9jrcuVrxHSB72/pQ33Uu7fc\nWYYVUX5fywAoil276ub2ncKSHwi0gACPsPBQMeP1AN/Lz1dhs8nsE7kwjnfk\n7Kx2iFvTOfeX1zu4psWpUMC9vAMt8ghyyqA3G5Gcsay7MLwZCQxCRKbxAbaJ\nSqAoqT/VCmYw29kEOhvJmQzqi/OyFMOMWp8tQq5nS9MGP2GTq1XKzz22mWo/\nTGybU3UR1pxEuBerd5PKgGadvtTmNqqhZbeUVaUCkuQJbUxxmyUQG+9/kGc5\nr8ftFYjYOpXnKArXBtUrz0JXVdrGNaOlXo+Ty9ajj4jo7E7aS2OQ0r7A4og7\nvh+vB6PF/RNBqyMn9n1PHGeaEuRuAwrPEdKOkTGuJ0q27FcQaDT49zLuk/fX\nZZ0MPj/GsgIPcWZp6bZO1cw0maVWiiW1o52I7adhmvTIk9V4osvftqgkPX2G\nOI3Q3yMJMYjVWysvFLRVEVJ00Tc4sB+zCVtttd1PNvEc6HvFbwz2YnTh7Xwr\ngSFypB6hiTJq1fDbHIgHlT+qEPsrjwe8raL7N837IXAvHdOcqQX1f4BL7qzj\nYUM6\r\n=kdOz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bce653c1ea25ac20d3b86b67f4818d90eaf4a49a","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-feature-bce653-kjl96s4u_1609927422002_0.8725951631982614","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"48ca5fdda118f1e40547fa4dc4437f87e074acfc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0.tgz","fileCount":15,"integrity":"sha512-piVep4ZT2DgoBJGFo5vITNaVNYECeDv5BZfJusLwgreyoykf6QK4TW9yEVNptlZscQPKa9j7Pd61bkcVuiBGuw==","signatures":[{"sig":"MEUCIEXo4s6F722VxBzEUSlB12TjmEhtWMN0+iBpY5qNw1/HAiEAy68OQgFW3IUI6e47V2avzP2oEDmZRowT9spGnr3UN8o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9agBCRA9TVsSAnZWagAAHD0P/iQgoedFI6W3HMFSECeV\n0ho2gkA2keYjchrXYUuj44Tx0/nR7qzBwLF7DzBoreETmxB26abWtocFAHOG\nbMGZCFWe3D4lAd95IYLpX+LTrSJprDh0tg+P5DleT7VCuXuRAcfZsF5wgQgx\n9TOnDp7gBW9mdjx5Ho6MP5xzXXMRfRt4ouy7fLwMqvS9BLVWLDmYoPQKiCFS\nE/AJnZVbU6kImfBnlvDLd4mtN4AlszHfr7wa5aihufKKnxMtNb7LPnibisTP\nKYIZU+YNVVqw3ArgZDIvX+8/YeHVOAzaNdE2R3AVb3b89t49P0FqmQ6kIsws\nDOzgOIDNVVkzfSGY5QKWg+OipxFVXgGiFjdNdVu61zqlXfg5RHjTVUyQEbHi\n4uIqX8G4d3T7yyiPuz4lQ6cGBo/Vh8YXiOnM+GSnFVsvEAsQlW3WOFkvPEzH\n1hiRuOUFiu+Bt54tHBUcPcN2PVCxTLYoM46jP1haT0yBfDs67edQA/9+A1R1\nZsIq9vSYUvvsT4/IC9iwJL+EoofJMxsz5EdLQ2eAQqIBlwG4fccsfBb6WQ6Q\nhBcSClqbKlvk6QJq+r5apHFScMw57sQxjWx7lDVkgmJig9LLScktLG8+5Wyr\nmdbyIxskmCrWeHTYlk3awC+7jkJJLdDAGmzbUhVDI6pdgULh9hKv7sxitfAj\nWhUq\r\n=XcQ7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"9e7dd4777afad0a0cec4089ecd70366e96706500","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0_1609934848760_0.20846779422721018","host":"s3://npm-registry-packages"}},"1.1.0-feature-660840-kjmmqcc3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.1.0-feature-660840-kjmmqcc3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.1.0-feature-660840-kjmmqcc3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1cadbfe64862832f0500222b1cd66a0a4373a924","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.1.0-feature-660840-kjmmqcc3.tgz","fileCount":15,"integrity":"sha512-FN3zTMbhuGB1DpiFOwf6zAHufG58nk1dD3X2MoD1f6Nu0STnHV4mSVlZRzmSb1QP8/tgruItMbARW6Ge4zXhLA==","signatures":[{"sig":"MEQCIHHrineHdf/+ozkkFl1nMe/It3u+lbM2h9nU+vdbYkc9AiAl8hqcCR3U8tqrxVr/eRKQeIUP0DC8s4btbnoicbtTeA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9tAUCRA9TVsSAnZWagAAUWIP/jUtckg+twYrZ0gjFfos\nXz1caJR7Njadd2L/iL4qIK1MqLlO4Mr7Hia5h+zZ07nN1K+hMSbsoq+PwN6K\neB9DV9rIR8pNbApEz5JDl5ozNBmuXA47MbMExi0J8xAHm7UYTV09rQ7Kp9Oi\noOcc3nRsU2rZ7WR7pDSUFFk6Ahb85Yaj8mG/blgFuNjPPTnBqMHkwWNZTrWU\ngNzr8G+qjX2T3w956Z/64hd5nSS4wLfxwmq936FLUTVGBQDtRPoM2/DrrhVt\n7NNja3tkQscSXQcaUScOG82xtpEYEqoeH7o/6+m20utmade+5gPABgMOhtKo\njHx+MxRYEcGMCl30XJuRxDlTy3xAg79+iSvS7vdWMIGOsMXltT5TLrDBUqy8\ntXlfp4pIlZU9WF+LvXRe5fhvl7xg7Kq+p9kppHrCfg50ziz5ot0QO9nPwpjc\nsCgiGQylBdSh9qAt4MKB9WoPPkOHYbqYT06Flh6uwA3yW9L4l3BobTnHd5Eu\nyb0fX1PHdoep1h+Y/4/2Tljemn6es7/2eoLHIW+1FFYko4EIdFP7bHdPnA28\ncszkeRhFIE37yLhpXUffZD+GJe0WsgCHlrtVCo9ui64qTC1hoG2QnCQAfsve\nHjXWdlCUdQEgoC/LmENSeqyvrcK9wN/dR9qhmC0NWZQoeP88Dt2D9QM8ENFx\nFB6d\r\n=SKUj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"660840f470b23736c98aff4ef67f62460e05777f","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.1.0-feature-660840-kjmmqcc3_1610010644093_0.1461239334921478","host":"s3://npm-registry-packages"}},"1.2.0-feature-ab1530-kjmoo1p0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-ab1530-kjmoo1p0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-ab1530-kjmoo1p0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"56d10ea6966f2f66b36966dfd9ce0e5c08d9b23d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-ab1530-kjmoo1p0.tgz","fileCount":15,"integrity":"sha512-HFoOa4xDQeW+PW3J6EJueG9Y7lZpQ7gfYyIvQkVAuqpK07mLNplDBajk/rRy+WJMnU7dunHe+1IDzPC3Xc+50A==","signatures":[{"sig":"MEQCIEUPzIdaKUFeiEBTs6u7GLpfuf8fSoBSMwct65qbQDtRAiB65TzxyIMgLCBomqnwQWJsGW0DoKpt7NauES/XGmSa2Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9tzGCRA9TVsSAnZWagAAcAoP/02bpoellJmeegsDcJdF\n6FloOSESne0TLnXbecOsTjbFLclAbDkSXtd7IE9JjTSdYPA5Z1R41DsTTZKN\nqWxUrbpUnregZf0mz4KFdXObpduaMYCGvUahRuIITDSoKma+Kj0fNC5EXHzc\nJVZJa0zmQBK/r5/SVaLeC6CgBrE7iGrrEvuIF73vg/gwNG5OjNd0r5VEOSAr\n5f8si7TUf9AjWnRRhnl0xpYzLOKQbz/FUZ5jufuogb6tSXvf+9NlUW8emwLN\n29P3gKPS9t7suVNk7X34v2ZFV3Fe8ofViapEuthuQZR50N0OazrBVGWk7Ip9\n+JCfmdHZA2rQ7SPpG1PbK9Cv+AOTDlbk5VjJw204gXuIne0OHyyA9RlVrZp1\nwpiceZdbc4ZiRmY/YIQm8uOnuIHUjJV2R3ddZA5qpO+XwKcw1xIOmVqLbAJu\nWIag2hx5mPtCXzTVbG+k6nJox6qfFkg2LuzUiKz/5FC/35yUrsDXKf7RYH6Y\nKETIzxG6lG6ewSRCtF1evbek8xik+ElhWmSm4hpert2BLdf6WPTheTh8eenP\nZhAE/Yj4Gu063C8gYymTg5rEtokQspPJCHixlthJTMmgy+sO14b17RgIOUMX\nw1MFnlRU5QztsB9dScg9SPPmWKKHg5AHWEveFHrY3ClCRjp38E6pTUtYlIod\nsAW0\r\n=eO+n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ab15306edbe5dc1dba73eb4df09c27f10284a683","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-ab1530-kjmoo1p0_1610013893519_0.8313979200709958","host":"s3://npm-registry-packages"}},"1.2.0-feature-8767a8-kjmouuao":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-8767a8-kjmouuao","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-8767a8-kjmouuao","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"951dae7a16153bb5463687fc1a1e5feb9b3a5b8b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-8767a8-kjmouuao.tgz","fileCount":15,"integrity":"sha512-cKcLn6SrURCvx2dGS17pC6/bJ0tiVIGlXU+f6CoeXrk4T9WBQsgqBE4wK8Jgv+6nikaMkYjIu6JQwkrkpCjqkQ==","signatures":[{"sig":"MEUCIQDn97ipGy71owwkh2HLe6KksGqQOeSh4O7jcfQFWNOvmgIgA9z5PIljXLrV9Uni/p9HuzbI6u95Pmos+nP5L5gukXY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9t3/CRA9TVsSAnZWagAAsikP/2HZ31n12lgz01d6lktB\nvdOVpw4r7GtH1xmeiCi2mm8xDOzJxyqVJCvRVlPCyWSTeebHRbjtTZWCn1zm\ni/w5exZDBG3+ODAaLcWTCXNyZqfYOcohU9Rn78vhg3JmsFiCC6VfZ/+23GsV\njIQvn8JCSAXK3wobVv46+H4ZdqsF1mgDgahKrMhLhhljTDBgJ3OZVaAes4m8\nqNKyGZ/MWSEtwitlGyOpu3mKH0A57rAGwVuxArKGe3kUPLWyyAwpVT4/YxDJ\n1THDjlkAZ3UE9wc5M0GXZqPjQLM08mHiDsvYJ7Eo4hXygbjo08wIuRZ4od3R\nqpmeCfUPwBkjjJ43KSmWZQ+WfuZtRKB0BF5G42BW40a0Zd4ElUA8nsP9PV80\nWPkU+Mc5D1OHfyKUmVO3K4zhbs0JLEDlGzPrfPVmiuVTSN7+HTFnkLkVGZGa\nJklj+YfqXutnYn3fwlwNnydFZjyCMxXbU3LQdL5sdlWCScRnV2HMm8xQCy/I\nE2nuHnKfjsg5rwUSGLbdfFnqssMRRF0v1azHhkaoxt1YXVwTZr2r+UdLiUGW\newawqdU1xxPcxM4VUKNha4oPDwhaYrql8V/Dy5BSYfzYmG4k3nMWgWh7JqOE\nwe82agia0rJuO4Qco9hXHl76I35ReHGocr2ADwdEbW/JfxQqrmRh9PGz6w/W\niHe7\r\n=qA7X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8767a8ec5029ffd7017daff8c41cb9380732c25f","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"2.0.0","@atlas-engine/persistence.contracts":"1.2.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"13.2.3","ts-mocha":"7.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"8.0.3","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-8767a8-kjmouuao_1610014206549_0.7065322169002126","host":"s3://npm-registry-packages"}},"1.2.0-feature-5bf2e6-kjmowqqs":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-5bf2e6-kjmowqqs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-5bf2e6-kjmowqqs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7323d31d5dfa62e78a9cc4ab6ae0d8337d1a0de2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-5bf2e6-kjmowqqs.tgz","fileCount":15,"integrity":"sha512-ehjoYhlhivREHwjLTP4zdrQs2yyqMmrnhBZKsA9VOYK9eU8s/q55op0xp0FX0UrzVyZO7l4lYHQtKK0YYdvJfw==","signatures":[{"sig":"MEYCIQCW6FV2+UJdEk60fyj8YCsX5xDrTBKxw2R3Omsq+YrS1wIhAJzJU9GCDTo0X9GZLgeOcgr527m8haC9k1GikcoDkOEy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9t5RCRA9TVsSAnZWagAA1+IP/jxIxhThbDr68FYwQMEa\nGuJy7YoWNNaWIukjWCtelCUxmCD0Lc1w1imTTjFQyTHVLJ+sP48g2oMA0qh/\nPCWKf9Q7GsfSfJ/YJIlxQ/BSGolxCs/HnVBfTajumRZ5UyQZ2rrSRtWrWgH/\nlvZabp9iXdQ6iuxZwZZGixCHQm+yNf1O5nhQTfKOQb1rpvpBCxqDI1Mx2NIO\nysKj8yGTSLLdcxh169RCt3OOGt+oxSULGhTKdDGIWNoM/KBzzXqOUkBe+T+7\npzY7uHmxCdMpjmXNUzZ6YOnF2HXhGKJAnyiamb6V7JkvE1fS67C3VQm/9WXt\n9D/tmqN/TnKwqTF/eGJcbP1xot84baH6cZLWiBsomePSDcA1FaslSqGFMGKC\nsMIuVJ73fWyzuvLtFlh8SfqG0716FeqfHsH6udcFRDxio6Xr8uDF2uZ/QZ/2\n3zypt7PviX42DxT+IGa69rXx6h2i/B++lWrwIB1VcL+vZe3ztvQ5O2SSSRgl\n7yCcC4tidMfEP0+n7dtZedgowszSo/cLsC4G/rDOAOHrOm/B1kQgiaIW02UN\npG19BTWDX+xSaHFA3yFc44fQkkrpKZW4pvqQcBuYK+E3Xz12eIion2mHQLi4\nfHIXhUzqveVRNz8+x2Mk0WOsJ2XzmJBTZCV8CH/XhCcakrNt2nLxsSMR/DzT\n0YKF\r\n=7ODz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5bf2e645501f98c28c22052f69c48e8784a3e711","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-5bf2e6-kjmowqqs_1610014289407_0.0665427494340054","host":"s3://npm-registry-packages"}},"1.2.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"baa754274b1252c67e7d27c694ea133019c2c482","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-alpha.1.tgz","fileCount":15,"integrity":"sha512-QclofPP3zMsb+pbJozW+9oUrYfqp6NHxidazsTI+yzcX0GO/xWA0YITTS1tMi8hx+VDFXop141UZz2SIwqFn1g==","signatures":[{"sig":"MEUCIQCxj2HFwIpNClaoETRQP2QePN+RFpjF1+PHIiIf7EAcvQIgIdWFKh/YeXQsHAr4TA1N2TrxmI/SGKBBTaJ3W+SmgBs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9uDECRA9TVsSAnZWagAAFZEQAIw+57c1WQM2OxjfKeNh\nxTvO1QZ8+sg7My6/VLnxNdLHgpszqSGUGsnluwseVkrGSg0Kc4+gjHyzzR9h\nMntFR89WgO8WDIlL8sbqfD7tUdemL9hho55yAcq2FWEy0EDwrf5/VQVplZo4\n1Gtoo8055oq+expEvC3YeOw3g8vvVCacuQycpSFl0xlOIH0qLLmMFOtw0/ib\n/w0Dp48twqUVPJ0MsXKH1P5mP6Za0Y7e9MgszKUdAUquNG7h96249M377moV\namsojWNru5uSD2B9tWD2zYRj355aqGYdIqAo3g6v2SZBwR0wCst7otjb42+D\nrWCo2wS9BzHk5EZGzQqJNt99WI62EfT9z7fMKOvYI3nRANVEC0yVES5fpOml\n9YvXjdIEXLYlidhzhVnMVW32d3df5+gZC6S9VaEJrA6ELmkCFJcqc0P/YXWm\nUXjq+jws98Ujdo44wuFqm/0FtLSJxjs7lp4MCjTFz70jqYzyeH7iXSL5ggsy\n6g6IHjclo0wnqIcNXcKAaHLqALs2eOnNvD0v3Om8BlhF2s0ztrSKBBBfe2HQ\n1aO8nNyx6fH3w6DDVE1CxgU2UPqIgXbbkSNdI2S3taPX7X5ylPoP23viG4wH\nQppGS0p7HnJVdlTRiIGaNvTOGKtFKIQhSMg6lhrsThCmnWush1o9XDY3WgWQ\nQ6kA\r\n=DEOb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8c286dd037c5e2f28d6b6d688308fd510e480418","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.2.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-alpha.1_1610014915979_0.3890796813415722","host":"s3://npm-registry-packages"}},"1.2.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6494a48be656b58cd919fe357a48630e2381d559","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-beta.1.tgz","fileCount":15,"integrity":"sha512-RaWxffOC5Cy5RS0yTCoPgZx3jxB6qifeewa90f8jjhKncrErZZzeNyxGrekYt7Ih/p33RNqphVCa85aA70gHLg==","signatures":[{"sig":"MEUCIQCDLhsSLnRTMyZZdZVetrLAoLvnMPdUm6sged27dZW37QIgHhX3/bZwOZEpOc7nEB4vakmg2uRLMaYutMMl6t0SmHE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":486088,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgACXzCRA9TVsSAnZWagAA4+MQAJKfodFgSXdeSFXTKa43\nfatcQj1xkxfOmyRXS67kWTafZxu1zLd+aPGj7WMH74VtdTlli6rbxfZDaXP0\ngt+PrHxPA3WOwRk0raoUGlqwk4HdeZtS3vwxlDzNjlAAlc4uZRKdOUsoiQ6u\nxM1spXyBblEf2LgA+41tfVT75SCPJCpi7kLcC7tSJecEvkvnjkYn0sQpREgo\nt/BVaC2ieWHjTrmcvaF9GXul6P/LKaZ0IrGZ6CQiOy2+JN04sGnO/YYi16vP\nARRYJIwjzOkmrzkm5nF7hipEfwpZFQ4Pn8f5JXz3KU7iDqsY0bjzKROAz69/\nlVVBSpzYtrvziMBQ/7Q9UUYH6CH6BHbO+L7DlE7IcZlLdkgun8ruebcwKaqP\nXy8mtMLqhNvfGBJsgNcURiurQ5SszH5wMy/UDEThv51ZrAY1kIjQBc5Wm+kG\noc5TOSZgdzouMwtKb9aAXQ1gP3Kil4LI+CLVmHGkOel9ZxgCDVBzFMFVJbr4\noXOMe2TEJ+SdMtGDhrriGTjsRBTwxKc1RH8T6jTpbLunJr811lVACAs2K+NB\nDfDlYwfZ448e+U08U9AHyQ7Dw5FijnRJjogmgBdvUXwM8nNOlqEGLR10h52S\nO1KmsSAOQ1LUqaGiQHbEu8pVh04ClR3d0EiSqwC9AileqEAxrnp65Ci7N4Oi\nD7Ad\r\n=NH/v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0c20b05b9b492234d745ced004ee260e45ad0965","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-beta.1_1610622451007_0.10001313719923499","host":"s3://npm-registry-packages"}},"1.2.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"388c73dab1de6247cf036d14b4c7d78465c170c2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-alpha.2.tgz","fileCount":15,"integrity":"sha512-/2PhUHiA9RBzvDZLihmukv/W1I3ZEuGpIrsQLoHhW7vLA1SoV2/CZTzgRtCZnYE+RVaGrFCGTGN7N0G8v7X1Cg==","signatures":[{"sig":"MEYCIQD3FBCXHbJu9ANo3wqHbFrTtqnUE8mEgoMTt2pecwpdDAIhAJONIWZYn4vghn8BCKjx8VgVTuaBFwmeFRHLB/A2vTOu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":486089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgACYGCRA9TVsSAnZWagAACXYP/A8Mi1/i85AdBwiiBWPa\nZj4zC1j3nRxvMUKVbRyLSq0U5W4ou3YgImW8LsY75Im60sKdOdy5siHRYY+F\nuWZjCRbkscQJSHwKmwgIOdla7vStleBxh569Av3mw5eZTw2wUmi/G+DTHgku\nKlfTLW0cU8Ui+CkGVcdg+m8ZxeRPBtlT2JdnhFuf/Gl+I74QJKfECVWT16Rt\nExK+c4bVqukAvvK/3dsjxH9rCJ7hIux/9QghX1pBxwMrFfwNqLM36b6tF430\n/d5AK3aU2l8AY1Ru1/K/uROV+syWKg4wr3QIJkU2TUT7LTS5WgI7CmSV98aX\nZwoFYJ010eCsAC8e+9w5p/FzS8uZnfeiEmoboLHT6p8QNtdnrUuugRxESuSR\ntyawQKL5UzvnPd6lOQUrxpA3gn0s2jttoYc+HvbIWNB21v+bLb1EQit3AnUl\nQFF2JSuNPk9IA9SIEca2eHw6dUXkwiVWrAg5MIG4UE3lkhJ0RXWK1fsJ+4vJ\nyJeuxT5EK9ViTe+MiEdXWuJMYVPnGfDeFtVZUL0eV9U6Gu4DorXkJE6dP0vR\nOccME2Ywqct++lGEo+YfevDVLL/RMU3bYsHj2zPuR5qK6DhtMB6mBPx4+Fyx\nwcSqvG29YBp81VBCf2ZTuwRI5hgnsUinYT7HIpB92oV40NsXEasAUQMrHUjT\nOMgx\r\n=IkmV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc474e056004801c4c2a82dd8521c4da0cff13f0","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-alpha.2_1610622469979_0.7132727735926325","host":"s3://npm-registry-packages"}},"1.2.0-feature-54c475-kjwz4ayy":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-54c475-kjwz4ayy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-54c475-kjwz4ayy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"776bb015647b7741efe0bd3f06fdfbeb0a0eb89f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-54c475-kjwz4ayy.tgz","fileCount":15,"integrity":"sha512-gbFiqjogpdLzHoCRWGBk8hSDcsImGToBR49vihmN0kVlWIHWLyKcfo8g5OtasrZVsyQTboqSUVDtfZEZ8KBwVA==","signatures":[{"sig":"MEUCIQCybsb5Sd+AyszrNgI/TPufn09+ZdpBuBtXDIm2o3wQ0AIgd32TIUKbxnBgIf/9ToiWviqaj4C3SPRg1AM9RULWrIw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAFtJCRA9TVsSAnZWagAAM4MQAKPSjLfbnAxeZnC7Pu0Y\nkeuYfRyIuyvKqPN7X+PcH0QSviNBWLe4HqN/Gpld5yhU/bZF4CdoghN9sIuj\n7Jn5mBztWCrYlKCskhmkMUHM4pc8Q7zymJP75Y0CwXWdkPCxQmsrkWSUc4Qv\nIx4j4QvYhoR6PIRWSYMiP7YYEMPxsawMXZjYUHeRrTtiXMHjjqPUNIMDIXtt\nhy1rtLgpV7RkX96qjRIDkPQOazayPrRgnZmIE9aMwx5WMK+eqBc/lJ+O790A\n7pKqFqFxYRJmkAHEllMqd7i3p+kddpv0vNqccTYTBgLkJ4zFw8W7QP5j7kyL\n52R7UUgMIiWblJUi6wnXvwvptwgNwYj9G8BSFIY4SODY0l3SRuJ1P/4Z6fqV\nYANT4OVMAmz/PlWVY886IGFDLFh1pCtTgxlplJct0V8wRiCc2ElXCcQhgOsJ\ne+lmnISriCIbjvmPMzkOeyamHptUvtLAojdzV9TUntFTUYlLds1IP5RCRVK4\nG4ha29d9BTdFB4VbavBE8Pm66IE9EeH9EcWZKNqInv12bff8NX4KRKVhl0k0\nNawMMfe4QpUufcwemdddOsOAJCjrUMlUgsVrRVMvIao6yA1vhlubJc9u2SNm\nGQAjEjEJwlMWhUvzG8MOcRNyEQtT85AWlE30Bgmkma680dnVjLvhIXpT1NP0\nEcUx\r\n=RZXG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"54c47544447ab2a759ebe914d328aa33b6f2518f","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-54c475-kjwz4ayy_1610636104963_0.33530056833963195","host":"s3://npm-registry-packages"}},"1.2.0-feature-0c96d7-kjwziq86":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-0c96d7-kjwziq86","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-0c96d7-kjwziq86","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a859ce069be96b26f7f4d3547362a9b27f384088","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-0c96d7-kjwziq86.tgz","fileCount":15,"integrity":"sha512-O3jsiiJANAxLEosI531GgXWxhnhuNx1JAeBz3ayS4iLUdwkpkpZhP0UHJndi7ivjN6gNcDe4jyzX47nubYGhyw==","signatures":[{"sig":"MEYCIQCh/HHiF2fQiVl41d1b/A/lIzM/kWJy+n+N4Bt884EK2QIhAI2Ir/+kBvgjLDhZ0XSZDYoil9U41dM9Xz90nc42CVLY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAF3tCRA9TVsSAnZWagAArpAP/3eXXGCxXvYoXjOCIKim\n2ehSGho31vDXL7seYgsaZvxp3I1seEOc4Pa4w0Mtjyd8JcVXyDdLcG/6hHjt\nIlpeHqYux+umkQPv/KKwndeJLmdNV6mWOI8gUgtErSjQzMPTXMIth/QUNMtr\nva3lzpCjZOxwmVAe6r6yA+0cxkYHjUQSY4etvxT8Vt9T4t/H3gnkGaITfic2\nlsn3syUev2gvX2AIsYW5ozZ/T14NeAwVq3A6gVGGp3Y4axd8rWcx1YgVQWwa\nl7MiSPtbUSP9f3VVZtbTlWeDXl/lFMJ5z0l4XApYgBtVZkQz3uuHR7rFMUzQ\npZ37QWw2oEBZL4wVoskR07Tt47o0ZHExDddpHXJ50FVpimYU5dMipJ5rTxcy\n8zVBEfRt9ttqziNm53AryYa+NuW8rZRicDCsqKePdL8u9Dr+G2nIQhARv4+M\nTaiEBki7zdoKmm0srIeMFHcE/2vat26hNTnHy4lUTD9PT3RnpwbBiZRBwfXz\nFrF6yjsd/K3uu18lnW8gayuEKyQ89mbqev7kobAzNf9yWT+J726g9xk8t5tg\nNimnDp2Cv0u9gTkWbbl9W5L30U9+/DHzZdiudPeBuxKWZ7azOc3FVGZZdMap\n/lG23PqAh9LLCDlC/9QY56LAtEai+PMJ2gIVcTf8n85AR3OyvAl7nNmMCgrP\n93ES\r\n=hetf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0c96d777d87c5dbb24f25740091b0b75d37bb024","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-0c96d7-kjwziq86_1610636781077_0.43374556216135085","host":"s3://npm-registry-packages"}},"1.2.0-feature-9bf51c-kjy00h1k":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-9bf51c-kjy00h1k","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-9bf51c-kjy00h1k","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b42e83151039ef67c3c0a8562b613356cff74ca1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-9bf51c-kjy00h1k.tgz","fileCount":15,"integrity":"sha512-6lV4kDmZFXJxtStmU75PKSNt+wgOh8YliN+7k2ZaTOkwcEpKsW9zdVnbEgCGS9h+GgqaULUD4fq7TmKHmWWK6Q==","signatures":[{"sig":"MEYCIQCiegmdsJaBZ3Yr+tfoS9cVLXRq3oP876gW1WvM5LQDxAIhAOIiaarIWX5B+sYhNnQogUlBqPI+wB/0/yYvF0wngRLj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAU1RCRA9TVsSAnZWagAAp/MQAIGdaqi1rDoRbung47rL\nNM2zQzJjaZ1fPg4buj0zrs774fwF5aKW7IOciuG7AJPmX7AYXfkr63qnC3vm\nX7ILTObd8fJVDa2rUNqTzWiCDc9ltfBPtWTkqxSw7Rhe9RT6DjU/adk9TDQp\nx09bHe0swQhqH8NJuh+VdPAxG9Uu5REO8OV4v0MnwO+kwERtMztxq7buVkRn\nvvPLUUF4qwGndf5Jdczo4VE4legxeaqnindSZjk7psN4Zj4+5KDbEYaXZpP7\n3X7Csb4756hvlNRPMDkDdtU5OYl9aRpvk/Z/BSRE0792sH0TgZCNcW010JhU\noPv5hNcuNcL2m8JAmOAOITcB6NJJjaOef5mBctNdBDgelfqwXDeRY4djnufL\nGdeACi34YCcZSoi7VJXsF0P5IuN6yDvTo9n4cWHe7U4U4vBo6jxTrmxljmei\nTToRAnTa3epvbWIJ5c1Bu8dW5yvCzjaUFChAzo2e9+z4fEE8nQc7caIWgLG8\nwbmSgo5+/VM2uUMb2HTudsXQ3mNbUcVPTaiBBTwyff+t71gb60viUamzpXM2\nigpzIRfqa/MMS1WppJLHuvbKUIx+upZrb9dr8xppviPqRTUI9g0AQnYzZKUO\nIq9AESJwhcHS82LX0VAZBFtM+PZUiGF3DQ4FAqhNz9mjM3QCEBFIWBwjOIhU\ndbvE\r\n=QvtB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9bf51c5b3f9c4273f1f4e075d6fc24a4d725bd10","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-9bf51c-kjy00h1k_1610698064858_0.5899666636982581","host":"s3://npm-registry-packages"}},"1.2.0-feature-8ea1f5-kjy146jk":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-8ea1f5-kjy146jk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-8ea1f5-kjy146jk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aa6e7b5a10e2082b4bcca738315c7f24b404ccf6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-8ea1f5-kjy146jk.tgz","fileCount":15,"integrity":"sha512-gC3Eorf7HtiyR1Z89r9bq0L9E1BdM+x9fR95UABqgRJ9VMiJLV+EoHNJZZp9LTkKuCWD8GQEDwAOIBxSiCt64g==","signatures":[{"sig":"MEUCIHpfxCm0xyNBJ+jZmkUF1QXnnb6RQHagZFFb7WvfxVVHAiEAmNDqzQuGpqFPM0KbIOkjklTKiL80JKFQkxYFvAlR3Dw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":488966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAVSPCRA9TVsSAnZWagAA9xkP/0h+xbiQRXIaV8dVHwwW\nBi3vY/QOO6EVAYdaV4pj3bm3keWwbptVQd/TUoU9GYwpnUlOwwqP5lzXcRmH\nkKiXEqK4tDHU48mabqzSQHVaONXz6f498z+Q3AT3oXToVe2HhGqwO1+KwWGa\ng7lPyyIxj8KraBMkBer2QMcUGlpKoUfVUqWfZa/yUA9srMT0J2iW+ZaQQ+TY\n0V6L8p6jWAdiODDl0qER6oZ/Qb3X0GvV/ZJ3/2uG0hUYMuJ4xFsxpNzEVWz2\n31WKCcmyNCHQ8m31ScmEpBh/2FQBoLQpmO5iYCHGVnMPiHulN27r2wITC+fC\nNsBOiPsM+hgOS3unT3sZhbYMG04eCQjk5ez4aJSFRqKZGGJh69YI1XM0K9Ox\nZeDHD7ChTTDZm9aL/VQvdNNXk4jLndW+sDD/pALoccOIffR67AAGy9tywOh3\nGRI2FkVfqf63f70svH2fXPgu1hJdudz4Z65vKd0NeXH201H+9tc8cwISM0hG\nPfFeYK3ChKF0XpG+KSy7/T0jc5jKoFbtDF5m7EiWshB54NkcyfSxthfnCfUW\nxngg9C9voje+nZeHIFgyJh2mDm95HwF9oJhB+vDGGIbiDBaKZ1RJ3HoARe3S\n0Y7JUvnt3b+1ydY7/z5ShboSgqckckt/vdgYuVfh90WJ7YhLaZWQpzXg3Jjy\n8tTD\r\n=UHcg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8ea1f5007c49468568bfff9a3691d11f69c143d4","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-8ea1f5-kjy146jk_1610699918616_0.9370243454535956","host":"s3://npm-registry-packages"}},"1.2.0-feature-2928fe-kjyaqncc":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-2928fe-kjyaqncc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-2928fe-kjyaqncc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b7bafe3c466a042ec28fb7e27c14a44c5c377deb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-2928fe-kjyaqncc.tgz","fileCount":15,"integrity":"sha512-qS8TmgJkoMByh91Y8o3d5cZxX+yuIdbsm2tbMzmxGRRdeh4uHcASO6YX2lvld2ciDHLKgWXV+S8nk92P0Mp8pQ==","signatures":[{"sig":"MEQCIG1JLk6VqG9m0KKLB0XuxjJANOuDPSzBZkA0xQZpqtJ4AiAJUeugxi54ff0DePJ7Qjn4Jqkkoe4NvOeESZG8pjPUsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAZOxCRA9TVsSAnZWagAAriMQAJgRMQoAWqnCS0Vc2ZfV\nFLELPuu9ifzkKOMtpfje4hLgFWimhizM9u74sOQtGDClmaiprmwDwOBosGIk\n4DvNEzNIA6YIkAaQTvaOdEd8osdIn11RtdmdogpmzCeLHwrEdrXrB1/GqrzW\nI4MTtcdj6wBghRgRhP7XCUa5aL22dC9+F6WNkhOHwzLoDP3q5TVJRskSWJnG\nvbBD0eMgoy9ZVhGgfuj6u+1+RTEjEpnpeJoIm9DY16cGfEKQ5wi8I/lOJNva\nGIOyFzdBZgl/lI5DW+oznxPuz6LHQPXFy4Y8wjAIYtHUEBRMKZYg+vne+mYT\nfTQTG1odPnroLpoWuViYn5e4d3fjh8WfJ2aLMTWspci3k6KypG3HxqtuHveF\nNhcT3Xm3Kb6POH/ERB+j69621aOsuXnSlFkrcr5FJVwJAnGCwEF5SPbohcdJ\n05nxFgKAfc8btpanmghiguQ7zXSyw01GEfEmJaYvJBaZVubp0zG6trBbsYvF\nSj4A5nxNJuJuhFRTL7FkJeYaIIvHZx+rU2Ov+Fl9QbOLlSF4+jdIeGuuXvHB\nM49poVNJvQBi3DZziXy3RkxAXNZwJVtvavAuPx0h4Li40sL1IVUgWkFwYP0g\nkAf+yVj8JQJY8Gs8YWNeZrBCspatD0Gu9l15LSp3+88UTTG7BJUVw3tSLyTn\n+dT+\r\n=C9ru\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2928fecbe28baff9a11a532f9a44db961f2066c1","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-2928fe-kjyaqncc_1610716081374_0.8913566320043971","host":"s3://npm-registry-packages"}},"1.2.0-feature-f55ccd-kjydlnxj":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-f55ccd-kjydlnxj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-f55ccd-kjydlnxj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a788852bc528f8a78d90a24502ae7ed4f69019f8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-f55ccd-kjydlnxj.tgz","fileCount":15,"integrity":"sha512-ejqNqpmlRVn4exRe4KYWURNJTgpQCgE6IDn62oIoKW6U93XB//IrKop5CS2XNL3KFKyMfnHfMmoi7Smsv3NJ7Q==","signatures":[{"sig":"MEUCIHjpCkFQP4qW1vuQ/m/eRlv3TKVTX1IxWUSd7ZmdCuLnAiEAyK9t0ECPQSUznfcyPKD5oPrIo2GQiTZerGbI/pkceXc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAaaACRA9TVsSAnZWagAAXAMP/1FYlydXuw2ZhkJdcsQo\n076T+qMlH8ngbLcKMxmUGcERrziCT5Eeu3RMVEu9ddxWg9uWX36Rq1JQ9ODU\ngvNHi7lxZ4KwYpUBjrxXroILYFeVEpWIsGFb+yXZtb+jFAF6NAGqSCojY/li\nIqVdJF3vT71xowByoEkAPjG57R9CzEVMWz6v4sukSgJzvecxj2NNAcY0cHAw\nduvwJPQktNdbvzE25K9fXzrh7/lsQItoecbgjjskMi9j2eB8iePDdRWk4z19\np8uvVFsz7K7YAzmAXDrFM3eIHaSuNWrbalHSO0b1hzGtk9r4eEgfC3//6dZ9\n6eSox8z1mDhqD1yx6+7tFstda/joD6eFKRG7KKKv+U3R7Ryo4wxXpw6qVwug\n8aYdgbTPR4owINnuBN5NeMUzOBu0OeN+0utgfX5yNTHGELPRkCHZ6IqDRwb7\nXt5z3QOOAFQTFhpsY5hzS0Ljij9BWjq3XYsZWmJVZ8tnoJi8yiq63ZB8GaWi\n/fOmmbzLvr+Q9ErxaHaZ3dxnQdKl//BDUmSRKpoUbBbP3njYCd5LEzIlZnyB\nURIaCh3hP2n1UsKGLn130z/xPHfhcZixuSIB5RujxFeN1ugCk2a3pbZpcHNA\nfP//1P0roZljKhCgAMsNzRKf77JZcMG696cZf6M8Tdd7UJZkTbdoZmiBq2JJ\n/1o1\r\n=f3i2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f55ccd48bb62e5bacce8e616b7f706cdf1f64d45","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-f55ccd-kjydlnxj_1610720896316_0.9650621115371791","host":"s3://npm-registry-packages"}},"1.2.0-feature-b4a0b9-kjyikk2b":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-b4a0b9-kjyikk2b","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-b4a0b9-kjyikk2b","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cd8772e3912f31bab0d29a475ecf673dd45cde3d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-b4a0b9-kjyikk2b.tgz","fileCount":15,"integrity":"sha512-m//YKpN0jI4yh/b9vkZ1OEny6yQI3K89SNI4QPdDrdhf6QntUL0JYFWQ5hifdveqiK0OK2y7l4iWXXRSNijDnA==","signatures":[{"sig":"MEQCIGmNi0Tj/ow9xWOFRrqh/8aP+TM9XOgZoBGZnSmv0HtgAiBVAjDEoIsJUPNCwOp4GSVwhQhLGwStkna/3iG1fryt8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAccTCRA9TVsSAnZWagAAHjUP/jrHUo71bU6lCFat4u3D\npnKlkFiL60jgb5HALysP/22O+SDy7eYUb7sDTcW11GSOUPdxlaaNv1o/ylOk\ntmG0rFqx69DY+3Zyn41LJo69BlefsCac7oIX9hcimUGzR0uytImkR9GgMJdp\nDYLCrF02mKzoUkynz+1P9kK5KR7mktBKKEv21sV6FBbTIiDrbPY+QFR/N0Ak\nrfEiL2LfnRG/7a7F2gHqmY597TFACBwO3vkSN49Sip/qdqXgzb3Wp2o/llKM\nSoIy8B8tf1lvS0xftISxORVGdD9OpJ7aGIbIu7Fpxv6gkmbCk7v6D1nq9mEU\nt9GltpizwukiOViiiEVtZWPlR0RjiT+u8ioKkkJc0D6VKppYibE9A5xf3GB3\n27AUCDIOuWxza1sIV1GIbDDfnv2q8FNPRjWQTEoalJl3ESHBHxQlqszoMG8F\nJkI+USOe2TgNCcTcOuH5XvZrkU2mLqRxIyF1fklQcUuFBRCP7qhSCWTOdO5P\n94R9Ea/5KzFpukhA1A7pf25zJMY2tqPk9iOZIJdnLjNGDo4pn2XaZcu/QnnZ\nPOdTZvVWX2UJ2Z4iqMeK84t2aAf1kBePSyQuYWVQf/i3DcM9m6KJgBONJstz\nI8/NSIyY3g49CV9FAoDEHMcUeHoUAoHpMwOmdKymeMBXQ5Z6LLQ9xgGt4ZAY\n8nbq\r\n=STFX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b4a0b92bdcb99cd5a6a827e5b2daa627a76b2ebd","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-b4a0b9-kjyikk2b_1610729234735_0.8133866871704496","host":"s3://npm-registry-packages"}},"1.2.0-feature-7938ce-kjyin6qp":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-7938ce-kjyin6qp","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-7938ce-kjyin6qp","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"47460918d3b52c4487a41d16e0a66f128d6ba232","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-7938ce-kjyin6qp.tgz","fileCount":15,"integrity":"sha512-pb/St/mQI3aXSco3VRrXZa4voOirDuOKXPhBoXy1g7srJ+U1x6Zx+w/PtmqslmJiNbxQwfdNkb3N+NxRkbn/hw==","signatures":[{"sig":"MEUCIQCTX7PCZHTI8ftf02U+GiMHbcHS37imL/c1kx5XoLyO2AIgEAs6JOH4y6t2/PouAxzBDt2dDVSrWJUgm9tWXuJDDmc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489195,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAceQCRA9TVsSAnZWagAAUgsP/jVKiBr5D/gv+N9cmq6k\naLR++19tdcRQQtZMq5UZOwL3iSrAhZr8XT8htpzzG6zFxFZU8P1pNzmcv7D6\n1aIeMquKF6p0zL5LgjQCuhC6UYZ9Y3eTuVU4A67Gs/TVJzDbFn3FbohpAj+G\nNSR2+33Bw9+T3YuwUEmZhvEOytcicD2xtsOBTgQ8sJktP2XTmT60m4VK9IP7\nJv7d1+6RZ7J7/6t28DV4d5Qs6naGqgUMLaM07qTjf5CZ/NlN8J8kan/UA7c5\nL5S7uKAHUxj7FMsBKPrGR5eoEvmg8xvPcHIUOCf0NHqnyStP9YQaAz7oXHgZ\nCUGgqBrRYO4h2IcL0VB3YHFgSGLXeMorZUEuSmGlJXnFKVn5jXTrUuG3HAHu\nLRRcRaBg39/GWvRvMlsencO2RPFUXiR/NYO7b/L0tR81Y2GWRMhYg4yjWQbV\nvxgQRa7t8spjs+ng3PBPch/i6Cz8cm3h+64G3dihBH4l4/WzQDuBZdubxpFz\n/BoRgXG0B9X07tLWb09W/FI8TBk42p0REau9XeNYL4expYJwkbngb+PmuACB\nMlakEvhg4Qj/i+JvvodantiThNBK2A7jCrzyuMHxwSYIS1IKWoesqk1lIOZH\nVB1vXkM/tKkrj5ta0vxcro9dZuuZW/AVBwSeFzPmdcmwV1hoYZsW5VUKwk2B\nmYZS\r\n=GGMr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7938ced7990d71920d5354b5b683e3af886e3c35","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-7938ce-kjyin6qp_1610729359528_0.8782428365771195","host":"s3://npm-registry-packages"}},"1.2.0-feature-2c5b95-kk2h7bsc":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-2c5b95-kk2h7bsc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-2c5b95-kk2h7bsc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"332e79f39e77ae3b3cfb1e95340d11b0801f0536","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-2c5b95-kk2h7bsc.tgz","fileCount":15,"integrity":"sha512-OUDc41rwkyghjcVmiueFDUpSEvSa3MMs+ZkvD1T1CZfyPIIWGYGNlOUuipZhpqmYfEHgDopQDnpJDweMrJb8qw==","signatures":[{"sig":"MEUCIHphORwgTRNSi95KnMTBm+NHV8HQ7xNXCNzenZjXqht0AiEA7TBPkyA13Ov2IgMrbOLZfYegZdQitbV+VtkZ4/oSalc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489171,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBW7vCRA9TVsSAnZWagAAgFsP/31yhUxCy+0r3gTe63dB\nUvwFz5FUoL8ZcaQxhXk0dO2GMr7MOoJN6/xJYTlV7kM6g0rbSyxfoIkxVUzG\n5U4KLSf6FsW0CToHZXbE12Sxr3mBJM85G+zhS/KLcZHgVvc/lYMtLwYCVWM9\nvMVvZlUaQssCobuwyVUk1223XKdSjJ3FOC4ipY/6HCdMSGwQ2OCWv/MpNVn7\ng5mZdg+BQ/Hka+O8KVQM15fBH7DZttt1PtFjyCxQFld/olaW20UmXtps6ODW\nirSViL0WfpJBbbuOx2TgGERGTqCnn/7wFtKDcRolLj9CYFyvNx8V7UbVIvbe\niECB1nCwiFvJrR9shK1OCqgI+3vSxLyNsIZEDj7ZxeBqaBYYV9TJWjcdcrhC\nAkCqaWjFJ2EoYA7LHLBO4yvH7oxVGm0/S4jouJGPQsIOOe8YUh20rW6/UCEB\nU6rDptwk1oV4HulIRsohnYttdSPllMqpRJpPHV8qbAWl34h0bILDWJ6ZW488\nFj7tn55HWNzXvlsuRq5R5VeA1H7ya0QaZUP2DLV/lBjQ4vTGnYT9WHAD9i+3\n8scYQNgZTB/9s5WmxnenUVZbC1Ovdb55A37rpzEjIgH4a08xI6gMcyDjFgpB\nGTNMVlpk7tgh1h1rZ5T6DxsBdxKnSjsUv3HEfMSSZ1dsLxGBio51Ct8nPBW0\nPLCP\r\n=Nmhv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2c5b95264d6c9604c00d9fd23077aa6f435c91e3","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-2c5b95-kk2h7bsc_1610968815133_0.5009773663002399","host":"s3://npm-registry-packages"}},"1.2.0-feature-bcd6f7-kk2hjp4t":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-bcd6f7-kk2hjp4t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-bcd6f7-kk2hjp4t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0dbd221f2a9f0fb116e46ea7b22c1b530259337c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-bcd6f7-kk2hjp4t.tgz","fileCount":15,"integrity":"sha512-85P55kk7rnSodxsPGBB3EZqGE92buamLU7/ZTRloi08l6ldCIR9UZHkUsIhfLVqphArHs2evNvW1KkgSQ8myjA==","signatures":[{"sig":"MEUCIQCik6uCxF7MMaD0jPtDzV9AiMCSvoSkx96JQ4EzbC80jgIgQ3P+ikseQQ+0B1CrOrlZGJjzwFYQXKwQOsgALnhj2fk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBXEjCRA9TVsSAnZWagAAvKcP+QEBX5KCjGXe8qfHEHkU\n5t5zKTf19ZnYZlOnaeGJnXMVFd2eYdNagJBcp3odWEUzVnLngRGbzDDxZCfd\nPr95MyXjh0zqBi7EqZRS8cwxeluY3Ltgor9dj7iSaMHawkYS5RJmaWYFNfjc\nFSYaKpDii73bqTgl5LzFXV901Dyn2idJI/SExc3lgvp6ru9OQpq7BixsOmUo\nt5RP6/FA73+rfVutzyitKSwdcojYzvsyAQrNtwK9F+fozHDwmMMdccKQXqem\nGHfTnoJI3FNg5Sq2MLrhskgAgwp9kJGKVuifPPbjVL3CNC9OwAfF2eiH7jaS\nEFGObQ57XISCEDdEf+etu3rIQG8b2nqnfrF7S4RjdvjLM9PBHL5qw5e6AT8i\nYIc5MJ8kSr/YIqEVK9rKILBJPCMReLT1Z8VyUBy6kicTXoo7057Lv6Xe/Mx+\nwRVBCzx76VqgaiExbwr4jrjp2fnOb7+vD5/B5MwCDldi55hPjG0ORnBHuEnt\nIxvuueqvU2M5oR5jPGP8T5Q6ITwm9Zfwhho/K9b4HXQ5NplUgrV34ZKbYO8X\nxMGufZWzmX8qbdf2pLeboDE3Uzr+voxa5b1np3Bp2nDvHVTZtTN+gJPrxhqr\nZcVhoItgVclVHT4DLPyOiopzvPwQRTardE/8OF94HKEAJW9FnuyrcwDqOvaw\nPCt/\r\n=Ppat\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bcd6f7dae9b4980fb7e6443e26af8179f5353a5a","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-bcd6f7-kk2hjp4t_1610969378849_0.2714177127661277","host":"s3://npm-registry-packages"}},"1.2.0-feature-c2ae94-kk2ht2sp":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-c2ae94-kk2ht2sp","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-c2ae94-kk2ht2sp","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"52835b8dce6fcbce3c4f4c43926d255b070a385c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-c2ae94-kk2ht2sp.tgz","fileCount":15,"integrity":"sha512-/4K3DUH/hwk2pp2+EZ5OD8T8mExT6AxLdT4yRh+mk3n6/mO4sX7nNDh7ZwGVCusjC0NgYYpg7n9M6LvH2vn8xw==","signatures":[{"sig":"MEQCIBnS75iCoeqhOaQPZuXxBgOP6EZ0WADcOsZiskkV2hN0AiBT9r8G3r4DnJKFwpwW6NPn7kh/2hjhD+cuY/eqMoi7cw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBXLdCRA9TVsSAnZWagAAwccP/1gM5FZPr5Hzwl2N25cx\nCBRNqSRWz21pFObQPuvFPLHepLPPHgjipCFF0bNDd203ELpcdW2WryyiuRmX\nc6R9D/NPRH7nVUd7MPsLQAnlaSeqOsU7gaooWaQiuONPhlH1wflil3fjkak7\n4XEn1j+PZtx8k5GJyAhfYCNXNTKc41mD0qaLYuU2E3P5VjkzcOzKBUMLQLh1\nuWVgc+a9lLSNU2VI8bY/atlNOWNuGPgq9mN3q0GELX3XqO4tdk/qNEwqssmo\nlTrpVtD/o5ZR7OmjC/1/Fb6ZxBvPofwKNrfDWxTDk3+hInyA+vUeHtRP+ZBL\nmC3Uz3QnG1hIxg6++kZ6Al8e+LbB5XwR8F6Cq3RasmrEs3ZHcDLeXHDFGRcZ\n8zO4lz4lRqxyqrPnXCo3YBrYJxM3jzAG1u9jUQHrNGz2giKe2VjiZJ3rhbIu\nDCKIJN9kftfCzx3zEz+c4RcAKs8akBRlGEr0Ed4t63fvizTVpgcNfUngp8Qx\n/H/9ABk4qT1Ko2vrkWn5o1qV1W3jubLy4r1G1uJ6i7Mh4/gCHdNUxlRTNFZ/\nrN3DsSkqGid8bABBL031jUBlBGMrdq4/YqjlGS7X69vniYd7PlNcnPnjf4OM\nbtvof1KbZGOFCXAeosgFRQPeGDDG+5cxp27U0azaeELbqF3PeGS8uUp+POWa\nKGuR\r\n=Gfwi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c2ae94e11406eb2e591102198c2473bd497121a1","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-c2ae94-kk2ht2sp_1610969820958_0.3471127141674364","host":"s3://npm-registry-packages"}},"1.2.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"80e44575f0ac5083103d3f2e5fc871b1a7af88d4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-alpha.3.tgz","fileCount":15,"integrity":"sha512-/lpIYT7CasICnrA8YWrVLlaj7egt1nMgeV3RILWjwn91IpZBuo5iyxCDOmOXjvbyIoyG2kWp+nEuhwryvhNehQ==","signatures":[{"sig":"MEUCIEyHoOADrBSgTZviSprxFUN5SPqTo3FkLvxscoAPNBCOAiEAjE2ifgqtG7R4kgr7WE2TS/Ivj86Wiua6XcHUP5YNx9o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBYHiCRA9TVsSAnZWagAAB1kQAKHhEY/I7mQkoerfguUQ\nb6mNSf5i4z9mDmwUzLRr92gSqUcpwe6tk8QHk2WSkb2u0VZfQRJTshkHerSf\nfka3XGMagFkRZj5ZoXouljiRtIIWPE8mWRZg0PpjM0KhDDJjcipimc1JMZUh\n7W6wvSMRKbPcXJmDNQYcUhOsT0cbr6ij+ZaiIFSH3UzZa2KjnxJXrN14SPKw\nOFGkF/GjKcLq8aq1sllZ+zNGaeJrFQmZdPSozwhJt5z4PILQLBXOkfQbCXUQ\nhP20/pYsXJFIrjOqe5IQ/D8+X7aIOXz09Zwk+FX3yKf+fPSfikZG+b1entXq\nQ+00DJxGPOIHRMK1aoljPACP8Gy0GRpMREpnckGoObwvuUW4ztoZzgK08Nnb\nfH2rAiRqxBpxqjZxmfOQIUOOtPtETTtQTT/8shA05dVLA6fFLmS/OLm97XqU\nb5yuun9C0nfyHm0dpWUE3jhPVzFDhb/PyzEhtwwfVDOINmAPE+T14tIKbqOa\ni9O++DrMeekGAJrJyUq8s1HXzGBoUoU95fdiePpR0Gxo31odFftb5ZF6hLvF\nZ7bWuStdIkZz3btrizIEYc8/Ebp8tzt1nolyLxfvzEFmJdlu9aX20I0Ghbh9\nR+o5S1EebqfTrBvzhWkBkVGngPpsgcKvGh3wP1a70kx9kz0KKj7uN5fpAHHa\nQftg\r\n=0QC6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"408b9ccc51603edf6737c178b41bb316b11290ab","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-alpha.3_1610973665595_0.14823529723778095","host":"s3://npm-registry-packages"}},"1.2.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a9fd5a9888d823237eeebf44548ba7c11cc192a8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-beta.2.tgz","fileCount":15,"integrity":"sha512-6GhELYzXkvS3ZVT8Nx1aSEkMigDfcJjUSL3Im+CehMsZOyHHY2KU+fN5Yxwe85bQqMwFzjT8g1XNBSusKceMwA==","signatures":[{"sig":"MEQCIHSFy8xfuiJGODN+z33hpNKkEcFu9MM1vvle60+MMp73AiAQ+HSPpON23VipvkGDV6J3W53cT34T03+RXJkpUfmIjw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCB1KCRA9TVsSAnZWagAAy+UP/0ZVyI72N+yLdxoA8QzK\n5BpKtTfJcy7meA33HS85R/WoiUswUGkYV0+Lgk1OKZG/pdyQn51Fqv7D/id+\nGFGJzEDpLepV/B1uzRqJAa05+KJZYJoTZB30dGoXprFgxvI6TfcIrGjrbhHj\npzSk8M4P+onORjvgUPtEuQ5nNw3ufGI+/Zq4RJ4GEX7CyBuUdItig5esp3GM\nGdxYeigCRwPLtPVNgct9HrH2thkFEn78wCqH7mSa5HkLVgSuMq1BljxfOgLo\nRZwz6ho0R5bc9Yf1LodS9/qhRWMZt8VLDVGsukxbC8DNdD7PDw5DIBfDQ4pA\nDOXFHVucXPXmI1Ac09cnXso2QxGiiFKDla4NBMjC1ZRWVR7KkZTLMg1tztU8\ng3xKz6LcvGYFmLzIAXcectnf9UcecXf5EKdbQYo7EJQCuD94vzWbzURBf26B\nU7O6MIjLx+xib+TFLF2H/2O1J4If2hnZt4Nt+tivezS6Bdqvsq1FKpl2fSFc\nRTl/fmIMmzaFB479Qb9Ogpy05RCJY9Buf6ku5P2KeM7kP1ugn7WJTMH54x4E\nPTL0uJX1aqq9asovsCbgAfqPQkbSIUL/Ynl0ySAI+3lY7/jEEv4aEI0pxhbz\nmuddR84+tc4hekRTR1Ns8zv+tduJySh7K9mfhBXu2BuQuSWsNyLGSWnFWNzt\nF5ca\r\n=G2AX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b088fc6ff0f281ff76727e7c3bed7fe685cf75f5","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-beta.2_1611144521837_0.8785136649877692","host":"s3://npm-registry-packages"}},"1.2.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a34ae1b7d0df5c4810c5384b7a4a0938d2105b34","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-alpha.4.tgz","fileCount":15,"integrity":"sha512-NRItPLom+x9b3EnMMjGwU7gRm/voQi/GF0LmzXveepbWrMWlQP0Fn99bQknBb1CF/13R9VcLltl8i+slAD94rg==","signatures":[{"sig":"MEQCIEu69plE1thy1i2MYVJHcgpKQyjbs92NDqCLYcNFUw4VAiBjvXmELyVmud5lnLyPYW8SNqAJWZUQmNMCn8yd6wigFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCB1PCRA9TVsSAnZWagAAOf4P+wYqT/ivBmRw2XyEql1T\n9JneEpcmJhNUtx3d6KMFBgKsHsh4iaBFwPpFs+cjLKAMsxwdO1j3G9Kl2Y76\n/em4dvB71eGvD4PLf47L//X5Rq4E78DYzYXKTeiPeoUnBsyV7sK2QUJsnOCQ\nmLEXMDqFZZUX37ftS9rjoY5gnHwcrFnv621ng6OSCOwTT53703OF4y9fA+UT\nMy0WlfT/ARLCAv2rN1g+VVGP+T5UHDrSnL9OjDhEqJsNpQuWbllVbCyixjxK\nEJRxFEgG6tL/tk+cxv5srngAFsjuMXQx6SQR6oZaQIPI26dPxNviTl3ZqG0Y\n5oiOCtcwn8DNJowVwuq/L8tXNDId8enlGUNsXdmQv6lwlVcmIk/fN4l2OIDT\nGd5Z0OIXZewGFtViNtkctFmZO5Rsh4KMU8sT2bPWapdgDx5Kxu5iqwzNVEMA\nc170ZJ0WTX/FsniB6K9pr1WNJfaBJDVtryiutNP+jevgKIJVfOK1QwuheGNR\n9V+A/cTAp1LJG6hhPDgBkXaUEoXyzdTmSgMdI1/JlrkI6lFgCl0+cpDpWP1w\nBKWV2bn+i9TOigfqMdaijcJayKFStHzb0oB1FtccROXiDDd4x05OW+grkkRS\nSpQjuM9516dvH72QFv21v3/GYCGV3qPVAeAkIJli8qkQ+ZuUDkC08P85S7z9\n2eFQ\r\n=aFeC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ad24cbc9bc795e242a4f5ac0be567f961255f161","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"^2.0.0","@atlas-engine/persistence.contracts":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-alpha.4_1611144526810_0.09194966251470449","host":"s3://npm-registry-packages"}},"1.2.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0ac116f50c3bd26082637b95a9a1809a542b383","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-alpha.5.tgz","fileCount":15,"integrity":"sha512-ZSdJovMINjI95xprDouDH15CXjbhE6eWt3RacBQQ7qbrpQlHveFFCLiLMdSI8x26q8nrorILnd0IXHa/BI3FfQ==","signatures":[{"sig":"MEUCIQCn7wvXgnu507+oQ+OkoqJFqR2NUL3SmRkDLJx6TmVDxQIgJ+X6tZlhpAT7vQtBsbFGxzVRHDM49JXpwVOGCVGbqn4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCrCUCRA9TVsSAnZWagAAPhgP/iK7TeO7nGGriVA9B9AL\nwoV5r1U9O2vmyEzZo04WNut/0VnPkTW1UfutjQKxN3uh8e1hC/YsiSoCV4ah\nzbl4ndD8K/K1JX5Q63AIGMjrkc7o34stQHSbc19hBrVHEPw8cnIZ39zz3XSN\nhXwsEg1ds+hPKJGGSGFKh9Xntge4axcZKglshWM8l248rM5zWVGYWzOW5Shg\nw7lxa+6/KUwRQTl/Pc9sUHh8Ap7UdV281DVKDYVfdVe6Z18PWdPPYFyA9P+z\ndYooiuNVgMG8PXucKtHMe0hy/EPBI8ogENgqd6sK9h9SB4RANaVOXw2cT9EE\naYWj6nlD/5laIZSw5uqiYOQHj4zKGVBg9L+YxwYdVBlCywftHw3bVYvJiUvs\n3SqzDewVRnrdwINiWga2085rG+vm8iCGpuDlbf64l2Tfxg0lanDTY/+XynsG\n5YG2aXCqUtHoJBkb6cB5sNLsflzC3+Jxh7+j8/ivNy+5t9HXeRiOZZnjb6/s\nSgoBwzF9iArG/lLuNc6QDCkkeOL3O26l7JIfBsS/g5XlMrS6CLLUrLUaKV7l\nAr5PIGGc/M9kRxcu+oeKGMxmWjQpvBn192dik4mLoroGu0f9cuYzZanAH+ti\n5Cn/hvd2Y7c01/v0gHv/EsE3hbAuZAiqZbzsP+gj9AOHAINE2Dzu2q+KKsl6\n99Pd\r\n=pjuj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bcb6dc9cfc86162812a5d4f498c2ba92efc191e0","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.1","@atlas-engine/persistence.contracts":"1.3.0-alpha.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-alpha.5_1611313299993_0.4133724466161126","host":"s3://npm-registry-packages"}},"1.2.0-feature-6682c3-kk8bmfwr":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-6682c3-kk8bmfwr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-6682c3-kk8bmfwr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"daade037a31440a4fa8d08ca8c78c71213033417","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-6682c3-kk8bmfwr.tgz","fileCount":15,"integrity":"sha512-+bWotdFuq2monFZgtQzoZf0+DfAUmogqL/QwyDtQjSPoqL0RHzc71BwLPplfX61kWHcR65Lqd5QAle4fGPl7ww==","signatures":[{"sig":"MEQCIF+kGXzTplGTvehVrh+zk0YFWYv7nPsLE1aC3BaH7aV7AiApCFPOoL96y7TQVfL/zSKw8533npJQyLBL8bJBwxQCew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCtN2CRA9TVsSAnZWagAA0kwP/1MNhOrqAuiGLFlbx17r\nGqSOdS+mz3H1UAMwD91RyNkEUViil+pifBl3AZYQ1/+WNIsSkXqqSQF9KhgP\neikdT4ex9vxhtKFqU0N3BG2j3itbyO5kI9HeP5OXiiDl4fV/1oV5D2KKcYNA\nHfDqk4e6F4b9Hpli8fLYl+LfiUwztFEMTMDjm88rZChMln1XEYyxo8zwvRgq\nEzK7ZI3VvrYryVemOzISHSYPzD45gZZuCAYuLyxQLzF2ZRPJa6KdNmJkZbEI\nAHI2jRl9p3YGb17V2QQNjbjxKGkwji/XUiC38kZnNi5xaaIHWCp3LhQva9sO\nOGluJNp2+vTeUkDF6J0Dq5cU/nUz1GGygqgCksGCGUT6PPaKoddJhFng/23k\nlNYtS8tY2B2XDQnx68+/qZ1OnYYYRT4QXe2xKrEiYGm8ZB9oJmwj3WzfA0OQ\nBHPEDI0vUQXS8j5p3rHDval1LEvhkhcxusBLb/NLkwheVhEJ1p1jqA1d/hMM\nuAEGS1hKx8+gIwqPWXV+dMTa4yPUW3DtC5enX2/94CeUe1tcwsV2vvWtWYuQ\nxyOUaGZl+gjbFcx5nv7NZwXDgKdPaiqMeFEqVk4Kb0P56KJ58XkexC88HE0l\nuXwweu/Kl0ViquumonGGdo7iGYytqFdqIXKcHsYJoYyfW7u9LBaLtC7MMKRn\nLOhQ\r\n=KGqs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6682c3c7e9fdcc8cf53234e558530bb85b96f809","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.1","@atlas-engine/persistence.contracts":"1.3.0-alpha.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-6682c3-kk8bmfwr_1611322230167_0.39162635530768686","host":"s3://npm-registry-packages"}},"1.2.0-feature-fa7fe3-kkchkcem":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-fa7fe3-kkchkcem","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-fa7fe3-kkchkcem","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0bf6dec70dcfbec841384c1dbe16ed5829fdf724","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-fa7fe3-kkchkcem.tgz","fileCount":15,"integrity":"sha512-AF6wL3S1iGK9AEdHZHQIkIcntuVCNkCMBGlYCYgDv+uK6lLKkMhJlR8zkV8iAIHbwIGDoC00Uwi+hRCYenXRnw==","signatures":[{"sig":"MEQCIFedhBf10rzTG/YT1NH/Yo6eF56wJs94nRmuoki9aKPyAiBq/U+dmuf5ZcF1hNJSaKTZv5jwNx1457+B7LGmcxqu4w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDqs8CRA9TVsSAnZWagAAZV4P/04ud1WmGEKGwxN4YEls\n6LR9YUiLBvCjpaYFJYnsgalyUVlXBcCuwcPaSDv8aJKgcqs0famQfB6OU2hE\nir7GZz3yxq1S6XyQUJ4Tw3PwK+oTVjP5XBDVhT8gDkQAVgKG7jVrdxe3uKqP\nzNG0Wk3W2xm2+qV+Vyu10r7mdzbYbPWRxav9ut06X3fn86xKJNfJN+iyI54D\nbU1+VrCllNlj09TUbHtke9A1gZYkl0/4IUE3d8sCZvNPYuXNuXSC0KILwGyc\n+fOoVfLz78OwBNa17TIooAmSjh4JlnhQrh+80Cv0h8OTqL8vGYzNAYSH8hA9\nQ6nHuvwNGQdlQ+KFeDZfJOdPa288GpF9gvPru0jXmwsLQ2lxVbfiSLv8tTsU\nqi+Mc4a5trSXQs9noF25weOAg4hhogk98RiSzwmTzHcovcB7/41/Rh/ODU6t\nbiao4JArxCqILCLJyKxHp5NI9IT6lASWfOzUksg42xTYwT0KZyfWCVv4FWuS\nxReQLBWPHK4rd3B1xJ+fQNykStWoqDk4ynydVAikkmPIQmyzFnQcdcgG602U\nx+btOnQCIKreMnq4TuCGTGPn7qdh94iUBr+TZJ1YM/69HTHWOEoW4orCwG7a\nbwm5e4cxCFwk32lVA9tgXfLOoJ5yWPiHK/PxuIeWOoqAxaj2Ex0Fi43ijR5+\nZnEO\r\n=qRxC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fa7fe3a36db93238ce96e144166fe0b112db7c16","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.1","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-fa7fe3-kkchkcem_1611574075510_0.40619161889030453","host":"s3://npm-registry-packages"}},"1.2.0-feature-54f5a7-kkckecx8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-54f5a7-kkckecx8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-54f5a7-kkckecx8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f844216db5a5d65e1cac9ee8093df3cc1b2e3ae7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-54f5a7-kkckecx8.tgz","fileCount":15,"integrity":"sha512-ohB8IczpQMuRBOSMYxN2tkOKU4uofrgDPzZDF4xKSSqziI/D5An7Fu04Dmz519THnu1Rz8RBYBVYk0LO0TJxNQ==","signatures":[{"sig":"MEYCIQCngyabSC9M+UVbFKZQzHg9UTuh6j4eLHkeCrNkRyVvAQIhAPKfUBg8zb7wkLe4Yw8+B6yN70azs0h+1dO+FfmsSrNF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDr3kCRA9TVsSAnZWagAAgpYP/RceT+nbZuCdJ0WuBz3i\n1P/ibWKxbuV5vIfMo07vKU3AyAyljI6ah9WVoz0WEczunacrvdj7wRAQMV1B\nI02WL/al+0of1s8qlzeTleC3DYgohMu1NBTUlU7lBJLFVjKvsC3OmHqK2WiC\nnBVo7/ZpUJF+OMRVTFdu/4LK1fVYWx+An6O/3guhy10l5PF4CBcLsTMogygs\n/48JGx0iarvRR+1k40MfMBSP51nCWFBjFOnUcz5Jvd9wv7BtQze690/WSe0I\nuJ6kBUE3kXFja1kG1HTBvE/w1Dfga38kK1+tiXawtlUFzeCyoPIWQ2pXGO6U\nqQU7rXxJgVfrflbRro/b7wPr+LHAhpbNu4lHRD7QUMqJYc8OuWPOQORDmpK5\nfLc2zTgRbeoQaaX491HBjfGo/C3IahSQklKaIs5hzvkhkUcHWNTKYnTGBMqW\nwxUQixWDMwny3C+4Pt2Wh7aa0C7LHPBzAnenGmluqhJ4j4XelFcij16pRAsQ\n+tdVNMMluU8EgzdQaQZcV6KoTS7ips/geweuDaWQgqRocIWzS1aTAWsGqvW7\nUPcmYQHNLMEj9vxmcwUeaKgm+y8KoERfnPQhLlt7FXHTV5zs857yD38TI1Y/\nZzsdwneopRWOdV0V9wT59J2Fli105QAEYvPbCBDqNmNuE0h+MAMYgMJCV5R+\n2PXd\r\n=DYXc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"54f5a771cc76bc0be67686d6d31538a8717138ea","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.8","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.1","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-54f5a7-kkckecx8_1611578852157_0.022366854476684628","host":"s3://npm-registry-packages"}},"1.2.0-feature-54f5a7-kkmtcp0p":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-54f5a7-kkmtcp0p","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-54f5a7-kkmtcp0p","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e357bb8a6e52db84661e567c6e768672b06a5267","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-54f5a7-kkmtcp0p.tgz","fileCount":15,"integrity":"sha512-f1wKg1Hc0Tyeqb9ibflhwnY/HAG6q8GsUsdf5kfCEAs4gexJMEKG6rtp8y0T5MhLcWr8FCDaWVKr+Pkq+t0xjA==","signatures":[{"sig":"MEUCIQDR+9rqrS34ac3zp+hnVZjymhrgnCkh3rE3v+rMi5lIVAIgPAaE/dqsBleOMbych6ImsI2FCCYgCy1+jDNlHsoc6HI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGDKGCRA9TVsSAnZWagAALdgP/1m9BbAAD6fzr1D3Hdx2\nL9kAvZitnN5s4msHstXX4yrMvN1RFiMmA08RpFz6aXApcZFEFsrnQLWgtUKR\ntjPgT9O4wE29P58IA3T91QrKWl1M8q7AfIhQn862dtu/OFmxz7RFVZrQkumZ\n/wS7HMcb9wf4MCmFHbHnoSVghQ2WSbFMs5MmQrsuAWNO8VAxArmXeqaMs/5O\nyO89laxsaqgRS19w71SqUekK4P17NyMftX2NMuJR8J5tPMrj8UDj1n9+SeSv\nFp18MGnE1I5ad2AUSDi1mEaPes5/5MF+1GRTa93ROjQQgjFsfvkPO5CZ03Bq\n4IO9+KPXFZtgMEuopBg+QfABXqkncw7uIdGLj6woXY6qw9Kk7CR62VRhehVu\nbkaJxZT49Btw/2bciDSm1OlFICQoLOY+lOs2aIfPCE86BlCSGqwlzL8Enxd7\nvsR+IWnhR7Jsq8t55Muv1ADebe6WI0elWAemIE4FQPIaOOlhL5nnCM7TRjDs\nmD71aw+oPWJ2tRfjIkCl398rSAqA59kDSxyCGQ9Twrya15jNBjmygII5lEBJ\nxObMMGAYM9FTtBjgylw7H/5UwjZM2LU6Gt653FcuTW1T9ng8jV0Q/zYGGOal\n2BRy6SRj734Ye3zRPDmibpqoDAxxI8/VqDqWeHlyL33/e9u04y67094g1Tu8\nJZxc\r\n=qi5n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"54f5a771cc76bc0be67686d6d31538a8717138ea","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.1","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-54f5a7-kkmtcp0p_1612198533917_0.3884726113995498","host":"s3://npm-registry-packages"}},"1.2.0-feature-5870ec-kko5h3ij":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-5870ec-kko5h3ij","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-5870ec-kko5h3ij","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c90bba5903d414bd0489d4d2eebb9992e8d1026a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-5870ec-kko5h3ij.tgz","fileCount":15,"integrity":"sha512-DxpGFs2n+FyiG2zr6bvSi1tJ04/0Rr0Yc8ypDbnpkxfGcOObcomkM3BdqnNoLoJpJ22yyoVy+htYzbFmKyIlDA==","signatures":[{"sig":"MEQCIG7HpL90Gfl3yTDQrO4/pSCyDyXXnzWm0pfRLwwtUz/8AiBtkD/DjdpkK7SIqSoC8HY0i6TpMabMMMiOeLkYetKGdw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGW5FCRA9TVsSAnZWagAA0fEP/2Inx1fruQ0XYb1q2gaR\n2jRPsE6UqKY0XyOocGD46nI8yrenSk7Qxn1c0g5YWIsIUXFa9kB7hlW9Bu0K\nXdu3/j5H7Izi/sQvz3cpKvRPufUTQcLQyftJpuzHZT6hjXAmCsxwICE8/+qQ\nJvznl6ygGTKEe2rq8xb/G0iz6+gdB6ot8E1BjLnxSdiz75usg36FNIdiVK2l\nKQfBlz53qHbsL0sfM6pKA5kKsSln7OMan0lgtI9ueOontFqMTOWo2zxd4lGS\nMzItqm8yBlGi9DmSHi1ZHP17CdGVYZvEpV4kt4FycShtNjrPct1ImjVhLRHV\nWa3919wxQuNrrFGtwL7P7fHoRoMvhdJcGpzHIA4sX0AdFjEVJ+Vy1OP9RRgJ\nb+ip/ghftaZrv4UJlGgVKEuYAW18vX+ilAWfOymRoykVikpPP5t5oKPE1Bqg\nTvM5KeWc8GmCURInP6ufEV1Em8rGjPZXVWvtVk7V3c+lzH8Ur/ZvxRUyyzZ/\niUhYR5aWXjQeAN45GyGf6V+IMq62zrWAvDeI3V1pPbto2fxkNSHlNbk3g9kl\nocvQ7RfRyowPZyjlJP/Kbac7oAbskejNIxlJzcua3WjWwF6598NWbfA6S1x5\nWhl33sSFWCeQMmko85sd3A2lWfi4vQ8axa9rE7bbi+EDzNAHsmu5iqrXajdS\nqKLf\r\n=AzqD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5870ec589f631f2d7ddae29aa3fed12fa1835a86","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.1","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-5870ec-kko5h3ij_1612279365181_0.2646406143372353","host":"s3://npm-registry-packages"}},"1.2.0-feature-42285a-kkr2s6wh":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-42285a-kkr2s6wh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-42285a-kkr2s6wh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"24c5c1aef0114f05b362f139f4f29d98f3e370fe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-42285a-kkr2s6wh.tgz","fileCount":15,"integrity":"sha512-PuAcNumUab9IuRWFiMbe0UFwgwVqXsOwllyEfD6CFUjdZ1aollybEb93wvZykwpbGO3wU6SBGUl1YpLhqwXOUw==","signatures":[{"sig":"MEUCIQCT1Jaj9F5ToB0DM4BiHaQzQT/AVZpdTqHbrZBtVze+fwIgJyi6TRaSkDonVBJpKrJYKq856lKo81n4lDSZQgoP0iM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489867,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHCE8CRA9TVsSAnZWagAAb1EP/AjKWm6JdJNCuTq8WuER\nhGAh3/1rMLGmpFrcJq/SzgbVw4WiIAeM45v3QTfnekyLpNf0xB6JILol3WS6\nw9bP60wHvIqZeNeG578ibGMvsHdrO4Ca7+cz0gEgGAZqUTK2x4FbQiBVUf3R\nIDBwoP4WYos/PLjHHzMKMAi1+A04+GrWD/hLzG79PebzSnPeVdye2jbCYTuI\nz2KPZW8sW0L9nJqbT8VIEcGqFub7PwzEcCgfiMspb12MWGx76GKm+ncsOXpU\nrQB8qx/PTjv23vYxMl6f7G3JTFhvd8vQqIvBmcR6xGAAAL+ryHX3qoSO0AWC\nBq79BiryZVPZzXryH7jFK8om6h/X+A2Tf0TjYwJ+UccXeBHKhX/XNze7a3dc\n4RBAcI8IPBlEvX4dYgJv1GjKAVTjVCFzRCuwDOi/DTGVpH7z0tVDrZImmhsX\nYs57GwxMUkWSw1hJUYTMIJ+oaVVlt8bgZp/pwS5cfZXM1V+5IKCMOZAbw4EP\nqibVan4OzFLtcR/6NbqY7Cx5wGj1dMq8QC7gDzv3D2JqbKeIY1Wb6C8UZJ0C\nhd7VFoCD2r6Kfc5AIhX+H8gc4I99SbJwtu8hggDeRgx3HhYdwUG4ZfV42KKT\n1dWdycCgehU+unqUllWz+sO+xJ9Q78yK5rHCryZb0Q8haNJ6AaSxdKDj6ntr\nVnvB\r\n=9/hl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"42285ac9cf8f9dc03c59e30ab377bbe9cd03382c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"feature~get_deployed_events","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-42285a-kkr2s6wh_1612456251763_0.4522591039766668","host":"s3://npm-registry-packages"}},"1.2.0-feature-146e2d-kks3luq8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-146e2d-kks3luq8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-146e2d-kks3luq8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"16acbb75a565ca60bf9c19829695244b0c7027b7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-146e2d-kks3luq8.tgz","fileCount":15,"integrity":"sha512-zglOlQWLgRhyCJvt7B36Z2mpWN8ZVbZVJ3gOGyUAzM6vr8b7B+/5Yj9TLkzC7a2d7fOfjEveLZMPfCMwH13bSg==","signatures":[{"sig":"MEUCIFeTdhmfk/1UEcSaiy8svVjRdGg+hbpcWToK04ptIBMrAiEAjvMS9vq6ejIgmcgu/3Zo3ls1Uuni/U8RGMs8ztDARKI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489867,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHRLJCRA9TVsSAnZWagAAUy8P/AgMN6sv2dYdv6/At0tP\nYFneBI2Yrv6iBPhDM3dBc65KVmIbfD1dsnZksRwarwMahqZlJj+G01HXhj45\nO5cqw7gfFKB46eHlf4+Gb8rmhDaUDyxNtQ3Cku19cJzwOB/pGLCYyf0Bo2MX\n3z8AzXZXayAYOAW+XDdF5ArLR10vYDJW3W3fbhCaXwxQ7hWgYSUj2cKKW0PJ\neaLgUYC+VjMCWJXRIJRiCXDzvGJsGr+B06s2Cb7A0QyMo1+X7PaGSWbr4RbA\nrH+79B3C06c7Uw7V9BScv3m9tyK3R1gYQHB4z4kqCbEykIwHnBI2rlTMmnhc\nxx06H74lvZMzsl+6d8BAHHr1CoQv88/YS93NKraNKS1HWTattzMf92jGPmdL\nzt6XI1Fs6amST/x6uf+fz0ULTpnK3wYdEgIR/H/03ln9ldRqsdo3AFJuooVI\nEBsj5uOEzdrcmpLmM/lMBEkZz9m69kY4OwxE+BTDKZOUDLSooXPJyrThl6Oh\nQFOUoAnsZuYAItqaBHM7AiuOLUoN3utK08nJvuTPnQepHPCVvGIAvhY66TGm\nLJDWvZi6ZYuFFZQmGjYL2ZgVNrKlZEXfmNWnNgjSq67dV7l0hEzzQlRD3xEn\n1VTkLnXu1KrDM2E74xIVLzAPpe1l0OQgxK8D0dm0XrPOEFGZNJpebaZf/4oL\nAEse\r\n=pvsp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"146e2d7090d77cdf60148ef1dd757358b627da8e","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"feature~get_deployed_events","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-146e2d-kks3luq8_1612518089123_0.371688706112957","host":"s3://npm-registry-packages"}},"1.2.0-feature-42a142-kks9t620":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-42a142-kks9t620","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-42a142-kks9t620","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1c1124ee9331c7da395b84df7cfa90ff10634c82","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-42a142-kks9t620.tgz","fileCount":15,"integrity":"sha512-c3QYmVLkrj7HVl5q8WnRcNJAJ77JImQWYg8ilgew/7+Mri5tMm1feRQjdQ15fRzOg85ESCvomqvfxCpTXynCjg==","signatures":[{"sig":"MEUCIQDMTGcZ7b0FqRl/LFVypSq7+p6ATAsCmrdt9OMeFeRWHAIgbms8oAK8psT3JTno2e5PXuAlb3EcyVKoK3iMjq3upm0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHTuKCRA9TVsSAnZWagAAf4EQAKGsl0LZZbQQ3DUDJXf/\nqqWd/mpEM6viB1+Ef50+bEEWeIK/uxBvmBOkYfOkcnom/5thC9+UZr2izCNF\ni32ZGcjgG6lbt1ponoev01gDXFnpCAqW57ieIXaaJsYcC4sbOQqvXo9EehpI\n7zi6ST/T3QTfDQu9wE8ipDh3xW+xrgiDvFZsiOgJCTBY+NfHvTtUd6KYQW/J\nL7Vfnxs0kc/RJhPANXoYDDwcEeFmWvA1wDUe5RF1IBCzRbpletbeDjbdsqgJ\ns3UvrKGIAeyVmx+QCNJK8kXnfbC1i9ouu8jLbnoJMZPZCoHR6GLQS+5hgMAx\nmAUdfrAh2sRe/Dzxz+23FRTmg4A/eoPs5zh4Y8CHbl629x94gHV3XwLYJuqd\n98B9nq9JAbWw+VxRXSA9ZHb9+WjbOlMw22cBwB+CUnuHpZLp7iGnw20e/vi1\ntXr84BtK0nrCVe/9zqx81y0OPZs4CXF2kCbRk2SyrPLR/bLNvVcTSWuBXV6e\nP7+8Z1tZB2Sy9YhGqyo7AM8UagM6QBF3anhl8PeHrfQy5VlEw3efoWq4ABZj\n7ztjtiS3z/bki0DQT/G8pkhEZnnCeHn4PnYC0UiqiL5pnx9R4MZi+7SfatYf\nNrHYj6Z6pR1QohnHsCLEsVWiZBEG3GWegv+IVOExEO77T+zH9Lx+kdYrgXDy\n7in6\r\n=frtM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"42a1427834d69475dc4fe71811a4021a1ac793ca","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"feature~get_deployed_events","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-42a142-kks9t620_1612528522232_0.1532132288867658","host":"s3://npm-registry-packages"}},"1.2.0-feature-b6ff0b-kksazb36":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-b6ff0b-kksazb36","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-b6ff0b-kksazb36","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"56782d41deb9770d01ac07dae393c5746bf59eef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-b6ff0b-kksazb36.tgz","fileCount":15,"integrity":"sha512-8X3BD+SneTl8GsBSSY/gwaKrFNSgFQc/L+M7akSfVRpVNLBrrmcITc09SwphQxysieKENhPVDBjtT2D00cdS5w==","signatures":[{"sig":"MEYCIQCkjjREFn5+H1VDcs6H5NWGOVVaWdJkOoGD36GUe5ed5AIhAMhr02MUTcRjh06skxIgz/gvET2x9oAdOGy9WL8mQ+X+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHUM4CRA9TVsSAnZWagAAO0wP/RvWXdYDh/UTNrn5ncG7\nynVd2l/ATSlegHiZ/dxWvCyyCQH/kxgaVU3ctK+rZIagQ8nZgk0lIyF+sFQV\nhclaN5iSYwQoHTAQwPYYgwCRtcVjGtNArg46VmEVnNb4+BSuBVgbmYj2U/ro\nJ6EHkx/gYmC0u0JTqAFo/RXYOETq/qvIGE3KTWuZ/cMHYBAV+8Z2SUylaiGx\nEjtYOZXIx9Y9iL6TGW3LExdazps13kaBlu3V47OqoD8up5LMbiQtC0iXH4qa\no1yahuR4CYr5MKcIpKRZuqh5qM9tizRTWLOmxyE1+65hCXNdlH9DMJkZHAwh\nvVf62m5JUk5y+YVfGmgPmK1EkqU67ZjaLJ92dZOPvTQuOnumXW1CEtfDYx1o\nkx2xWzcKfBRA+lvWmQ5vdilR6wmIzp9oTgcxt6WDtTMEB1NWw3wQF0FIV82O\nK/4xtL8sXYKsE/HfedFiwzuExVoQ+NKKKfEG43BqueWdSRsBHRjnDWjEF3yk\nEe2VJzOtWkz1xdm3/Qs67+Z6b6kcdegvaZYMNPuxnoYQbcx0HJh4O7+bHiGe\nYemhwQr1EuqUyWh+z5zdurN9NWS7BHemUmTfILXLSF0ZRd2mI+Os298pBQfB\nA1zOcJfaCLtC2q+ScLcJl0B1gUOPyJQ60RfjsuSTyJYidbE6+zKYFzvRJLGa\neZxZ\r\n=ltpu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b6ff0bed1e2b20a6c433703359bdd204edec742d","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"feature~get_deployed_events","@atlas-engine/persistence.contracts":"feature~get_deployed_events"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-b6ff0b-kksazb36_1612530487985_0.8049571583748187","host":"s3://npm-registry-packages"}},"1.2.0-feature-0c7506-kktxa8l8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-0c7506-kktxa8l8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-0c7506-kktxa8l8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2e4a278c615bc60e3e69d4c5b18f1ff1b4a5af25","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-0c7506-kktxa8l8.tgz","fileCount":15,"integrity":"sha512-dD2sBvvK+hXX3PeZuwsWq08HP0hxRCETiq/daDv/j4dRU+x+GUjEuLeFiHR3q7+kGGjv69xurG7KFQSPYQBZXQ==","signatures":[{"sig":"MEUCIDiW28odYU9cICbvFN8w7MMnpK9gXn1q5mcSMdQQDKcuAiEApEUIA2UAt78788VfuMwkHVzM1Ibh8TLVNYmj/ea0Lkw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHsGxCRA9TVsSAnZWagAArIkQAJzSC7nHOl6mRa4On/bj\ndexvTrE+hZ5VjnvWYyGEH/O5nvWtxs1AboRVSE3i/tWJUn7/Yq2VDeEznGSI\nTBjGdM/P4PmxAvTaTBytbXEjHgU8aJnQUhPkMtomI91FxI7dkhK6u/+dYS6n\nudwDQJ0B2IaOhWkJI+Bat9ZgUvvxm58sycncLKcfF9RYcSxoLoNF6OXwBBKO\nUhPCIg87JwNjrk0jNq8Z8g+gttm6KX/PRVslrDN0W4zbHbLH/m5fg2VHT9Ar\nukJmkFu5GqQyrRnWPIdn04s2REOtifZRpxp5vBrwNxHTOGnI5H5xq+0/HxuW\nVuKrKOg0qwS5La7mRURdRCJCLNpHeLteYjkgVtnsI47qmQSxllvrFHZr7bQk\nrULnm6jwPBhC5QPRRMnFK7+DDIkEKBfe9bpDUi7rwwoDwTOb+eOABsRpp6O2\nWwk7X7p547Q2DkrOEQhTr0h4uI5IjQdF+ygjRq3s1NHmIBmLwod9ZEWcp1LY\nqjraYpAf5TaeVhsZnPyKlIBOs2KwdgXEjv/hFnfNKznrBmRPWupGTe/6lEG8\n84fn0+XZaGH2GOXFZUZJd3Q/jBOVwmVZFfyaPncIO8nzcH7++E+9vKmmJ2ho\n7qIDOR2W6Pc1yo+f/j6C8ePlv9ZGDAzbtVy9FYe/8whApSzOOr18JQ/H2WCd\nBTId\r\n=MKn0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0c7506d9b3b2cd3bd06aee88f2ef1f4a18575db8","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-beta.1","@atlas-engine/persistence.contracts":"1.3.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-0c7506-kktxa8l8_1612628400950_0.6091312761477519","host":"s3://npm-registry-packages"}},"1.2.0-feature-aa0a38-kktxzf9t":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-feature-aa0a38-kktxzf9t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-feature-aa0a38-kktxzf9t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b3773ee8f48d4424afcf3b4cb888ac391eab09f5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-feature-aa0a38-kktxzf9t.tgz","fileCount":15,"integrity":"sha512-F1wcLaBqXkTgW/IV5kpb2jEa/Nl6rQ0jTGoGXqjUPhvw/xx6dMtzIlW+MdnvXkQUWFl8MR0PBv+WMEZrI88EJg==","signatures":[{"sig":"MEUCIA2srVs1VulrZHpvrKI2cmNmTc9ShlFZ/StVb4xqQfGQAiEA01ixpAz0JEUX0W3lTlZYgDr79Lx8Y4LcTrPR7YkIK9I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHsZSCRA9TVsSAnZWagAATgEQAJ0P8+FnAlL4d0pRvA23\nxsePjWMA7FO6bV0dCCKDQEtKbBuuGEnh52pZFtETznFxumXJK5d/Oj0SLOn3\nA++PCN5A4pfLFdN+uf1xBrSGnvWSqQ2q4BkiR++rQSdUEDrClFb9l4YTTsV1\nWijsomLKHafUr5XaqE4hZdujPKi8EHhEtay/A3KRFdLtmyXUf39+rSY++lq/\ntei4q4UXLW7c8ihV+t1BV/WyEb8cQER9rMA09Ycc4/N9/iq4EOD60WfTPyLV\nNQEuyo7xqooMPJ4BAHiPUyuKolZ9jZfma21CzvxYZivs8KP7MQnRpZcxysmf\nyUWLqVXWIvfaI7bp2v0HGXvPqfUytkkh2H23mf+0sORJ+fDUczI7crAHpZmD\nH9BQ/KWj8D9TW77ITPUBMYRiYlyZGnFJwrrZRYtP1e7uRgyUDR4n7/hJN9nu\niqlWUrvUhT7jKsC0IyGMcffDKEr09eUN+uN6M31cRBHNyJq8SUQz/XZmL0O+\n1H7U7Oq5WJkti87UpeTlT6OrKRiVpkjdhQIbozoan8o+RFtSaMgbtL7oq/uS\nz+FIH2mpz9g+NFq3Pc6k8LItD8gS9vumGptiXoAgYBu22XZgx0UqmI6O94G8\n9Q157b64AwwNV20GCfda9j4WspgENPXfwPv1z6wc4wxmTnEg99GydylR2xck\nKduf\r\n=d6Qn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"aa0a38cf35063a864921d29d5c8d8f548f3d7cc7","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-beta.1","@atlas-engine/persistence.contracts":"1.3.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-feature-aa0a38-kktxzf9t_1612629585705_0.717987899965121","host":"s3://npm-registry-packages"}},"1.2.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6775265df838b9c5cc1bc137968a23613f3019e0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-beta.3.tgz","fileCount":15,"integrity":"sha512-MuDFzCV89uzl5y13alC1sduzX67OfhZCzl6cF46wXTgiVwlMrun6s50vcFGA6jzxmfyG7L2D99IiSUmXLJZzlw==","signatures":[{"sig":"MEUCIDCfOKxjZPs4ZnXIm9iLOxomyB3L2qd9ATB3P0vFSxWtAiEAqIllAR3asbE3Vpkz6ZHy1Ud6KZDX6V08PPJU3OJmiCA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHshGCRA9TVsSAnZWagAAY4kP/ia0C1Kw18gkXwdq0+/m\nOmMr07tewl/eUf0pqmc1LOCllez7l58m+oOHwO8xe0vtSAtopzfks7KbL8+I\nmnVyH7UgcVcmRvlK35RhhRaM1SQJPiUpEffyXsgJl1bc3fmCH2jxEadaq4PO\nqt7MyYGi1SvRhAaakMyXbGTAm0255IxVFZgG47HYd/ZBJteEnCjC6bAEbAoO\nFcrbidcBXi2ZDk6ZFiRqG1ZI0r8hSNoc9zQIVIhPTogWTihgMA+FgIn7f38X\n34d7pBnvDrwXzaPLk2Edai0gYoNpDiKeqRQ1fzN2UZIJc8eEjNX48OSZiloa\nMxrlij6g7XxQMeZoO1zWPCeTCfT5MRBu/e/Nu1F79uyOUWq2p/M6Q8siou2k\nZOrXXOTLRVknVDURc0xetHVwntWOagzh0SjWvpIabdmVV9yXV/KYKvBHRVFs\nCEw06nUNPXy0f2Z8ZiDhu5bTrsZvWEzftPypwGkr2sZa/IjDFRL23tv6dDov\nc+Gth2dy3xgmTFIUBn4guZWC4cVAtpIq2c7JUZdpUgHrwJC6EmcQMnkz+BYJ\n5fOwi4PHfYe4BTB0bzsdv3GYdx1bQyaKlnAIUJ3umYjzab/JHDSpueHcTmUP\npsGTynmeE/LDgFSLu6HtpqSWyhb0mIuSgaQosVOlpBOTk7D2u22uXfekFWz6\ntWwt\r\n=gsoK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fcbddead6a11a7d75fb8c529feddf2dea45dd66c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-beta.1","@atlas-engine/persistence.contracts":"1.3.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-beta.3_1612630086542_0.19587504619583362","host":"s3://npm-registry-packages"}},"1.2.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e7d3a3470dc3ee5d3a63a834c47e577963fcebd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-alpha.6.tgz","fileCount":15,"integrity":"sha512-Hma9o6tauGkNBXYu+ruRvh47hNosfbnto5Uzp63+GuRPFrldfMZ9Z8PZl49ceiXulKcmLUa7gChNBHfF8i7iaQ==","signatures":[{"sig":"MEQCIG9CaTXLpgSQvJ2I/V2336SAr115e5bMb+OaCYUgLDxUAiBz/MbmtvzbeU0Jqc1CtYfPnR2pgi+MajZUqxLX2iOKSw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHsizCRA9TVsSAnZWagAAb5gP/3lOv26+/NxS4Fn+yhm0\n9SgCX2/D7/iypIVRqMY7SYS4yb9j+Y1siZKX5FnDYgSUjRUX4lniycKyyuJE\ntIWqKak1Zlnq8XaE4QVM/Ya/iM1ed13u6M9BwDOB7QaefaSeuOXLhA20ilko\nuCNsaSHQ9eJHAEP0KxbHP/o5+6OaU/4fc65xizu/958QbWVuxzECf9wod2Nj\nudNXSyirWivEUF8Q1kwc/xdBiZUxbO9hHJcvzanYzz/a1gQ7eYtkPh8+hqhy\npzNIngBds6DKM7DnzY9+als27PhVW3ZfqU31E3MTp0C2iyjo0muecqwW4LsI\nazlwTqRYFd4OZKMijUqWG3EhffnOMOU+XNR9WoFgzADxqXRXDEDTBLItDgqR\nr5LgqqbZFsMhb7b9+z5jeQjGtFlZ9zmd+sgVbR3D5A5wxT0V5p7jptp6INz4\n/klYqBm8G3As0+dMXDIAqcgPIdZGXLA8DlaK9HRBffpVBAnP+uc1GQcBSq/2\nLPqBoHWyHyAyMsclhtlay1IJRNUdr9T2e/zVWUVlvr+F0v45CsukLHVmkWEr\nFWb53YgTzCMbGj5ebbtamyxf2PelwDyAx2AhYuAGuXeWE5AAMUOeLEoVTb+N\nvxdBi5OhS0EOaMiRaBmFg6R+8lBwFhURG9AoYDrhvVqJu5SZRKu5Y9fAodGv\nGqRW\r\n=OlPU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8db5cc0c4effb691e21474d664049ea148f82afd","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0-alpha.2","@atlas-engine/persistence.contracts":"1.3.0-alpha.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-alpha.6_1612630194724_0.8610946530318244","host":"s3://npm-registry-packages"}},"1.2.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d754daf6708ae13ead53512376a5bd45a6294a3d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0-beta.4.tgz","fileCount":15,"integrity":"sha512-YV4xDBaTPb3ties4qCBmM0QePS329yxy6uzg5tNiCLa03r4Km6OwjOaObJKafxIps1vckVoSh9veseNG9vZZwQ==","signatures":[{"sig":"MEQCIDu49NM6at/GGu7ea4a6wLmly6DsVOwedZFwWOHnz3N6AiBxofw7DLbtGf6t0/0cq6SAN1A+OgGn6bDveb/XFpWMcQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJSIzCRA9TVsSAnZWagAAj1oP/R8247NwyivE1dPzRHW3\nTrgppW6AuOQVGaOv5C+HOrbpJjk4H5nqHjdpgM51RRkkH0n21yTWC1OKwpKG\n6dB7ghI3fJeg13V0J+rmB3gT9mUWn+eWjFtzZ04epUqQJh5M4HZEkSgMtBTF\nWgdI+pI2UQ0lHN5YwJA94vQ/Obx8vgmEZq60re75bTyzyAUEI+X4TmXoPHXK\nz9AIn30sr4uq7CrXVHKmbnJoONIRtHJ5SABiXAzwDe/FVBt5RyGr5iBYVC3/\nCgxmrY4H12bMXGs7LfSkr+Lk0XS+SkZ8fr7gs2Ox4w7zZb7ATyG/oCRNuYfk\nrXjJB27F0C5PGOCYAfQAix8P36FASlVSSPmLjbHpj8U3QfY+J5ewFdhDR1Bw\nNeH3TBPGAPDngGetn50aXuBPD1w7UZD8t7JYmzvf+NVZnGyUKB9ThMzUxjlB\npugf49QsoYX+1pOTHqA9VVOvioGcIsxr/qiyfTLJ5AWY2FTcF8dXJEsugLuv\nZVrkP8aOrqO0ykHSGUF6zFET6hnzFKFh4gjQNK245S2FMkXoULjWCpLQrDFZ\n6ZE+U6E4yJWwC4tITJT163NEsPMV2J6CU69JM1j+Kq8jZr0FIISl5E5T0C6o\nQmm/RPeNMdWxEKEwjApAvTw1i5zmD95vZjzQnBX5CYRIZl8ZfvNE5VDjixBf\nKIa/\r\n=Yxt3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e93eb5ea737ab4ff69d644ce0696dc5cff283715","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0","@atlas-engine/persistence.contracts":"1.3.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0-beta.4_1613046322863_0.6627212664212832","host":"s3://npm-registry-packages"}},"1.3.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6fe10fc3515b41f2b07bb2b6cb02a64640e4811c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-alpha.1.tgz","fileCount":15,"integrity":"sha512-nSbN/RgDJr3Jt/0Pp8AMhqOa05nzR0ysdD+z54zJFQ7oMeNyASIwUWVatzw5TclN4dREoJi6cb1kWY5yZsYToQ==","signatures":[{"sig":"MEUCIQC8v4wyWSwC4mYfbpA3eKwo4PvFaBgIoZKMXK8rhPwipAIgacHimMo9OkZLUrIOArOZeb7JmaJttLkPxmbHWfgYAh4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJSKHCRA9TVsSAnZWagAA1eQQAJomLUNn/nIc2v7OwhGh\n/oe6qAjMkuF+gJbYeK00LpSxDI+NV3L5dYP9z7TBKkxnAKgGlhwUVseNzETV\ncKpDMg5NTyX390oYMf1PfySdFfKi0QfEZ+DWE0ciFHHU2zVj0Fux4M06SXTj\n0EW7tu06hB1SYv0QqvKG4cgCFuDsa8g/1yCRTK15c7TxG1i10fVwCkvFdGaN\nxmUhR7TsgQ4WNV/vS4AEMk9+rQEWVKPqOOLmB3ks5XwSQQjvuyhfCSsOhiIf\nFT+3i3bk5aOr/kd13lWDX+Q9eStznIXWkRWV4J0QYi1Mcm0uXr3Xqb6NB/1f\n5uvR0BC1v1eGK5ms8CceuusSvJ+OvAci1IHT3WFxTe7N4FuHl8H6riiXsJP9\n6lXBq3K0U5up6D2/2lMszvvH1u5Oums8aSznyxedlC98TTGUu3Jqqgw1qcIQ\n4tt8GJ4dhcfF2bFstPY+G7/VFir4gLKjjc5VR6tJ+Fe7ENZKJfz+s1x+tC5y\nAYb5ZmnaPuWnXlZEoQBvG/x3MJ47Mw8Es7t7Ycw0TdI/+zgo+p6q/m6ihxrC\niCm3jWRA9JTBo0gwwgfLX/cDwR4w+AS4e/O/UYgDIH5B435PwHup80wt4iQo\n20mAZqMHdFKPTD/7mdjsPBY2JtCXkvvDNEorFmPOvw1CE/oc+V7AEcVV0h2D\nl+p5\r\n=c/ZF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0bc256ddb00d14697fedb2e97630d166d10abaa9","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-alpha.1","@atlas-engine/persistence.contracts":"1.4.0-alpha.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-alpha.1_1613046406818_0.868546657394627","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.2.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.2.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5ce86edce4b29bfa2c99713c1950f3582f658b15","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.2.0.tgz","fileCount":15,"integrity":"sha512-pSTgfxA6N3dNFPKxq47RvqG0nUeb5gO/V/fOTXylmYP03/Pw197FiRiXjim0xv5GPIi0GMmNl0JIvqMBSsdtvQ==","signatures":[{"sig":"MEQCIBzuYrwEKTUKPEBmhyBV2ftB6xTGo4bEis1HzS8hAdrxAiAAsFqJ8rlQw9DBHPZ3DhFux/NHuGz+YF9QwLV7p1tSfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJSLzCRA9TVsSAnZWagAAQPwP+QAnDhEwK9jgxSW6KuzQ\nKVOeYiRLJ7rX/eJjawHhhR0fhei4onbk8F+h9BrZ/pHlxqe5ZvWqn7Ks/GQ9\njOkIEPf1NweHK/WR9FPWpGi0PYSbFT2KpyE3ibq9GA+uXtnNBWCyC/PrJqFk\nUemMSdajEyJ+tbrgYX70JxUJZUa3CE4xEJpjUk+921MguprPXNXwsUsvveDD\nnHbcsK6CD9jpxRrdkI/oI8PbwNZoYAvFXBj6PYheSiGNSAJubDWfFbYypEUn\n5HBpY4rUuj15ijjcis3futTrEnfljDelNjuX5b/a+Was1CxjBlIyRot/BBtq\n4IC3/ppYZYC/kx6k4elld7xezEPUiSIKof3kNad4yBlXpsGeJr9rIRpRoMwN\nUPmxlTxF9n91YPk6eZmLXSeI8gqR1oOivY+pA3nH31+Mgy5ohxlHjgcmYsYy\nUj60CbvMlVvd52r4F83qmKL10OgGoJFKZlS7Jy2bJWTn9IsQffYYXAFgdySu\n5mW/bIU/zHfPLXCCtOdsiAvKQZ7ReX8VMzQspryYVoVqhFAfM9yu7C9LkujA\nutwwIH72e1tknGXKY+bsx6Zhe9ocV3P7SKI/Teoa79sbaKnfoVAGlXu2/+TG\nqgxypMD46KJ1dorYmel0Q1nBYtxmQjsUcjPISAWUxq1w8d+EikZRjhWwY0kA\nSTyG\r\n=mw7c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"b462643e40a44c2aa4360492b5a48b51997b18e8","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.1.0","@atlas-engine/persistence.contracts":"1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.2.0_1613046515339_0.6059486740775679","host":"s3://npm-registry-packages"}},"1.3.0-feature-26e0ae-kl10ukin":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-26e0ae-kl10ukin","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-26e0ae-kl10ukin","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6d741f14ed293e4d08e172654dda754499eac671","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-26e0ae-kl10ukin.tgz","fileCount":15,"integrity":"sha512-81kX4KGDnALaxFRBhUc2OUnzr8MC8VSolG1udhBCH6eXuOejsiIf2i7vNvarEywIRj40sZIVyK7hRcrWIkEY4g==","signatures":[{"sig":"MEYCIQClKmQFcGE5iezWBbSN4Tw3lTU1ZyxLQz3QUnqCvGwHRAIhAMmWOn/k8d+0WPgFDZAWR/qSv0fRxNMCOZI/XpBGzOHm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJU6GCRA9TVsSAnZWagAAX2IP/ArRTlAslWHNAnVOe7Q2\nfgqoW+DiD+kvKPFWSiHNwDO0KeXrU71o040QjBetZntbWNvmIq3OJdHsGNhE\ntKcdO52rqJEA7h6pYLryBq5c8giToBxb0dVTc7z3ZiL4f5N356AaxYw9WeOH\nTAjVa3zpgEes0BB4Dzz1PkB3aoKUizb5Zqn+rFJMREbb0/bRjXZfNGPOIjR8\nabi7oCNLes0N8urGWjwshIkLGOn2Ih/4DGGdCbGdESnEcqJ4tIZ+jaLDMySd\niwrvV3qmlJ/pMqLxPM1Lf+13q4UpKR0wGrrjaEm5S6YORlRkJaQOst0YANOX\n4wBJe/MmFLd3EqHwqIR8q79M68N9yVwk7wW6QixsL7xVfeI41wPsEREvE+kA\nJXFjLP/GUt+lkq3ZUWIvV5+ZaK9kxkWzFCG9J0xYQ/rf94McPwgINYjcLlIW\nDpKMRuUUFNp/Rxal+8F2grDE2cpa5rlVj7/rojOpgERCDM2pmKsUOtBThWk1\ntFS7w0isBnrth7HWA1BoqDfRGaD1M6enGEyRB0bCnRhRxN3mN3Og8cHYj54E\nByubzghDvmSTHP60u3FtxyoWUSbsPzB3LscNy3K/Ps1hFX0N44kQyAsZVsaW\nkFW8ywn/Hxx5qtWlMfMQ+KzU3bn6l48bI7BqxnjPRMrtm2DHKV4wxgifFln7\nxHT8\r\n=aoJI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"26e0ae46115dae5cec1a3651ab6ec677b53f670d","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-alpha.1","@atlas-engine/persistence.contracts":"1.4.0-alpha.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-26e0ae-kl10ukin_1613057669826_0.44457488608654083","host":"s3://npm-registry-packages"}},"1.3.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a633fff72c555634e6bb2534128e12d9075f2ff0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-beta.1.tgz","fileCount":15,"integrity":"sha512-WSP2LjAyjQrYvvGtUG28yiWbf9+gObsFdrO3XgdRZsO5m7zWWYd2bukhvRnSwDgkXxTty913GytoLcqPwHmhQw==","signatures":[{"sig":"MEYCIQDoZWVvIqUs/KCsC5bpRPFBNTHxA0MrVAYjdsMmk3R8xgIhAJcl/RH6TjCSnBy7FNDlQ9yrcfciP0sbQFxkVnejPbR5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLOGnCRA9TVsSAnZWagAAtJQP/1kpTOH+QKyjIICv+ynA\n08Cl+I6yj1X3uaalF+aWCfKE9lqFrjsECK4KjfzNJsoegen9oVe+gvXKEAM8\nhUTAGjo61KvnMEmDIvRYJ89NUvGyaCCF0iiljPfxhNONZofkdW0jm0LL7HHN\neImPiNInOzDQNjmK9jU5Pkcledw5DEknp0LsKmwJd5/3dK22RNis65tmv1ch\n/MayjufJkgbGUJXF9a8oiffVq8ScPnNdYFfRSsaGHVPDpTjw7ycsRP0yoDSz\n3Jmd7z2y+uDhkQoEi2NEXBTVpN5873j+YN93Xxz9lem2ekoT3kWhfpmelVlL\nZpMYzOFY0oiheeXIUTAGMllL3/9l9fbiTLGdf2U8FpZp5zGeWOQ71H4iTzLL\nlWcu5hzA6wLYTwi1kQYzT17aqqjb9ZQd8vmI7Lwn/Cd6Nv+uu0SrkZCK5oIY\nfhRrtGKcsSgvczKqQHfFo5Gkmi+dhvWxaOx8jvkHyLZV3CYdWvAaZgIk5hrl\n+df2hjL9gJ3j//FNNg7V9GJMTzBruFkLD+kB/WhiOI0zLZk5qMopewWxcwhD\nEUIYnLUgNYE6ykxHa/tB2+ZOczTGo7hT6c8er4NnhX9lTyl5DkFMLhRPMaPx\nX3H3X3dxUDR8a7njwHyWoJ38qWoN33NYa9xBZbL9xLMwFMW4FCjtVIVsiGe7\n1xN9\r\n=LX0E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a4cbb81665854078144115bd2a3375e9573f6cf8","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-beta.1_1613554087301_0.2655925406531956","host":"s3://npm-registry-packages"}},"1.3.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4c5860148085a20bde9ca42410f1dba3740c08f5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-alpha.2.tgz","fileCount":15,"integrity":"sha512-A9s6PMUpZL94tppYGYs0g+7aHJAMFWGBSobAyORYYik2JRuN/7+SxlD9FUm0RoLskI2c7S0q5EQDG+ac3yBceg==","signatures":[{"sig":"MEYCIQCNLejeuq/qOsimEc6gkGCnVfiH/Fi/JTp3Us/JZZ43PAIhANazz+5yCPXKerYB19i2WrEk6TPYczJl8Mr/Fx04oTuO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLOHPCRA9TVsSAnZWagAAIyQP/Rm24RLOFtGuB1anr5H3\nmc1vVkk9EiaMJRGmUNkStuLdFgUv8uLGZ09H9Uo4PjCA/qFYtOsGhyDxgaSA\nst4mb2DWSI+Ob+BCjEp3ZaXq8Ux9Kyr6NqK/5yxFMYxgbaz3cne5HMNvbC0b\n17Rs8kPOR1SO7MOMu/25dFi0UfUG/vuLZ1VKEVN39xNjzXl2HM5mxIeaTNx0\nxLxNeKSBbOCS31caXM8kTF+LNJj5xz6dHC8zXeoTfH/1RJ+2wIRsWJkmTX5v\nJhKZtqMfkaw98AYB8uEyutd7otchRGEtYqJiZnb2lp2YxsCTUE35klL+6UQu\nYURQpHCvwtAPsiU+rOYssMWEc75HaPUNpyJf9TSpA9S4nCrr8rgPBJWVpE0H\nyD8PeopckXFGh0rzwMpXODJ/Z9dK/FMp0C6RDRT2A89nXYTdbh+v72s3d4Ex\nPeENy5d2YyrOzvkFOqml2KVj5/+P9OZwNWA6k5TYnXnuuvdh+1EEIie0tTjS\nlllZr0kIKSRHOJrbVW+1OOkIDKeLQtJ4mZewqXNvCQQ7FikGdnnhJb/lRLYi\ny2fxiv3euEhKJJj593dfVnW9HGrH9uq3qGbSXD4o3C4PVGjKek2tt0TWQlx7\nDMcokPrYshzxsSReOhMm0IQU8c/22uOTE6EBaOZh5KV1NSBdoFqsL+bllXQ4\nFLs7\r\n=dCCL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2f746080043cec9ffdff277415aff2ffb5c264ea","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-alpha.2_1613554127213_0.9970036766711257","host":"s3://npm-registry-packages"}},"1.3.0-feature-054ad3-kl99zzrz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-054ad3-kl99zzrz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-054ad3-kl99zzrz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"05b6e164c17711fba78bd70bb1575f1085bda7da","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-054ad3-kl99zzrz.tgz","fileCount":15,"integrity":"sha512-JlI0tcFnhHv0gPrNobmKeX/vcLwlMYEFglfIQSCc1qDzVF3M24U+XPYOcPUiRInLwZ4wtl/kBXdszaidLZJW6w==","signatures":[{"sig":"MEUCID3GjZw08QyIXD96HJ82TcZQwMwcYYeGO0IDL9rBKL58AiEAs7F0mBnLYTSQZZY4MKGDkJaw1lAB44K1dwWswEsUpJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLOwaCRA9TVsSAnZWagAAK7AP/RHxLeh1A0rhdg//Vfny\nNLsIyRBb49RaEMSETmgOblt+FbMhVEaLCEbof4NOUR+4ukQaigKCHc35T9M/\nXCGmMR0IuooPu1esajNVpqHBwwCe4V8Oh/nwRRWMUwCb3wu8LGGJfH5Eid+N\nEAOfh27dmhBeLgP6f/xiL87HNquBnyl5UvJ2dWlZGXJrj90tIc54oEnng2Ma\nPiR+//DO5+44OPyqsfxSeF/lM1gs2LRZhNHDvOWX0cY0iuK0t197i52mq3Oq\nixMd3UQ93lEkKz8ifmm7JW87BDvLtSEDyl7q9ukjnypNXj8MFU5PE2UtYtoN\noJo/KWAovfQtRyYsY51pUaEcCYT4zNraruzFsQq1Q96MZoGn78U8DV/5hayz\nXbP2L+VRCLXSweQzX7Z1cLwzCy/fL2az9iOv5pqns57ebxkTbkvPj+FJP0cm\n0njWyzoyZg8sdJ9FN5lg4qdgnNUC9V+wHPbff0vlzjeVxHD4nopUnlPq9rio\nFzDSHjjQJRaNPV6zQzXcjfHDSQSQlKghl4QTOoWxVDaFEqWN2ZJ550GvOg4q\nENyp7Qif7y2uEHUP1mhMIkVrl2nubqQg5/Uv5Qh9pTMJj8addSiC4ypYkHze\nLdmDljk/AykVH1xPYDnVPGLf5IavOxD8zyr3y7vUM392x2v2wLo/eB196T+m\nsUOQ\r\n=lA/U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"054ad3a6b1b04c679533d40a34e9ab58112895d1","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.10","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-alpha.1","@atlas-engine/persistence.contracts":"1.4.0-alpha.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-054ad3-kl99zzrz_1613556761615_0.7000541467557293","host":"s3://npm-registry-packages"}},"1.3.0-feature-b813c8-klceagi8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-b813c8-klceagi8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-b813c8-klceagi8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"78b0270e488a710dda3f2295739e7727d7443bc1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-b813c8-klceagi8.tgz","fileCount":15,"integrity":"sha512-lkNKNKMq7ubwrpSffn/xQJaR0P+ecZlT0kZuqM66TgmTC8HTGgM5ne/xQN5BGPqDsNSJjNQk+X7nosQrDusW3Q==","signatures":[{"sig":"MEUCIQCxAke3jCN/36PhBa0JguU9eBgU6Yj3TJT55wIW53bsZwIgHekC2u7wvpgGTSJLrQJJ2O0/dURblrrMF814teQ7Log=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgL8zVCRA9TVsSAnZWagAA47AP+wdr0UPPdvVOq96upOO3\nrJGHqCDPcmwafWPQl5S8Pjn2iz0ol/ikyqpoTEeYUfBxQLCoZZ02pjQlgq9L\n6ue8CUOXPhy9LPumEt6gak/+F6kp/JV63fvRxAOhvJxTtYJEbwTODJNzzc2r\n4ehHs4L5IKjwi+yTsxtAdlYf0PLRH3GQBgI07qG6bzpL3XVuhc58lsPHW/q6\n63tkwuBQPruUx8I5uFQPBXvZ+4QofeQ6OSCVoLiMl0+x1m9VkaQV+Gi+dCTX\ntlqIqJAFfuTDNX3gmRoKfonIp4Pr+eIiQ+b0BKudg7OSfqr48frn1ANmwuZe\ngJiK8soGNl1U7F2yPhQir11xDkgBr9WaBuT5MIrkSSSHuv9k4l3hnYG+wIFu\nQrmZM4dVBuZ5skmvu3Rmzxo/yOIreUPJxQVeCVxv9qBbCvr91VI02nUhDkNe\nQcjm60gU4haU/oAthyj17diPbLS7bzWeHLgFb/DNjsDfO08JOyGmWHgwLF5c\nsWKjmwt7IgMQYzRyMvuSXjfMc7M9pEjn5NseIqaqdZGBeh4ikSfSGXdU6sWZ\nPF9Fj5ypNiy6bT2fXS3fVh9PmmKKG0Q9fVu6wfmqW3F1ZlAvInWYkVuRyxPL\n6UGk3tEjUcejytNrwgN1PgraZ9Bml8iBHLDJ1HNOCXRWCm7pJHM9DPw3tIeD\nHF4T\r\n=OXVD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b813c8732cdea86f3333e777187ec86ab2a40f28","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-b813c8-klceagi8_1613745364957_0.5146926128729103","host":"s3://npm-registry-packages"}},"1.3.0-feature-3a0b3f-klcehl44":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-3a0b3f-klcehl44","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-3a0b3f-klcehl44","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d4833850f8d6ec3c7930b5652b63ac5ce6f7ba81","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-3a0b3f-klcehl44.tgz","fileCount":15,"integrity":"sha512-Y/hA2WdeIFAyrl6mcbGygf+NBIVuhKEvrG3aA6PfjFamqrrE+tTLLFVAmZg9ypS1sDi65AyjDay3Cm6ndFiiwg==","signatures":[{"sig":"MEQCIAFkyR4TdGnlcBNo3RxKnS/97vPFlJtkDgU1lVVeYyPtAiBA2Hsyga3ApsNYRqj3GIQ6H6XJW+RP/aAzlJC4VD/dLw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgL84aCRA9TVsSAnZWagAAaaIQAJWS5ZDCl1TXKTkMFpwc\nPJerawXwjNURKnN3P5gO7ViM2zvzDQ4+X3qcoqB+OZA+aU7bslWe9H74z710\nyVmp2bYrKNIMBho7Usw5gUAkjyiSGGOpBLaVFF+kUpI2vQEalf/BpSuL5aRj\nqVp6JjeHwJTtfs9mzUzq0e1gPzjUJVTf7jlyG6bvJ81eyUaL0aSP+YL3FpTw\nJJ+VJ+pKPt47UBuwFOH/fiK4mX5DnryYRj3+E2k/OVTpY8UdK7M6MZ1/JHXR\npoiWMH2B96rodw70rqcLixOX++5d5aI5pycidn1MLE9zvEO978IOpXZFM8Zz\n6+TNoz0AnK+tORAZqONNx8W1PaNkKCrqn2sCrkq+AV4doHUAiSmN1wxFQrsz\nPVj+ZffxBBLxUq7SqzxR0HPC4oqZd+LxF0QGzWzDxRe8Y+RpLl/554ryU/pZ\nh6q7oq0O2DRCiXuyb27gPS7tvOSlJIn1ZYmx5+Zcwk+K9v9J2EdcWP1VqLwj\nbqmuY2wymPA7fOhOVM+YV9Fj119vqk37xbo5vZR6SUQdZBtraRB+1OA1Cn9S\nUTAr/jrTzJOZSOpOrpuoKlmp3joP/VL2HOtePRwAAO3jz6C254N+jkAvuU2E\nur43zJpgI9yH6S/qA/Zyx2SlZa9gW+CJygpa+7veUzjUkJ3viArkhdeBAjDn\nChJK\r\n=0i54\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3a0b3f9bafc835f83c71400af1b805c1aee58583","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-3a0b3f-klcehl44_1613745689762_0.8819696724552679","host":"s3://npm-registry-packages"}},"1.3.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5bb4e7bca4200602f532943d4c060c5fc3256f98","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-alpha.3.tgz","fileCount":15,"integrity":"sha512-qmDnT53/YXMI+AAiVTjV7V3P6az8nzGRAfdnufw8077eUzlMiFaveycybcPUdPrzQBgfMzmx4DgD4f0KveZEJQ==","signatures":[{"sig":"MEYCIQCUs9BWh1rbFDZgUEL2pWOme7GlJnZhc6dI7b29COswJgIhANBbLouoPWWPwiC0NhsrCtxG/Q1qmO/RcewxocSX5sud","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNNO0CRA9TVsSAnZWagAAQM0P/j7hsa/dxZpMy/sSlUdp\n9Nu3riQ410kCa+0S2vHN+kWadV+7D9flGP2YeilB8f/e/Vt86WnHdjgQ7QMX\ndjefU3rjWyv6HwR8JRr2IaeNmWjTjGT9YQCCYKhBe24wYIv/9lWnGpuN/Gof\nUPqVsxBc/jfXzYBrlnByOWJouT/m7SlL+tQRbyPBzOCfBT0OIMKtt6JrvHMk\ncSn6REVR/stKgnlhmDEMpO7KN29gNchZbny8NqrsccJCE+3GC0rZ73G3/ldi\n9oUOsSh2w3AzDf+50xvzg8vFpUB27Ak7x4IaY3EA7aUWaIus14Wyr6hxSW+M\nrzSdclLnfz8LEERJFlee4hp8c81AVljgATCsUIeKHAvVgPm4egH6/rQ/gS1x\nFMbcmjufXtCNeduKGgeucanzZ+FbyS2WNNbeF00Uow4zK/UYiIyZsEp+zYs1\nvZz47o1MF5hiw+9zxmWqh/VOj90dhPXUsEa5M3RyHEP1BDumTond1wG4t7tg\nrfZ1Ry+RYOOP1lC80qcFRQabwCSwBxI8/cS6OPsWHTd9S0b2NEwPmmo7Oft5\nGVCJXT2ZAmx2xw1Jxkj7jN7Y/I799VRRSDWclWhHBKGbuyAHWfF1cVkyUyVj\nwXzOnWX2aWJzLaMRf6msRvRQsboXPFbLXJPDZNdplfA9X8P394XRhw/ZEHsQ\n5aby\r\n=AYe7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3694b273a3b89106dd300f0923446ada78512112","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-alpha.3_1614074803602_0.5539327650571588","host":"s3://npm-registry-packages"}},"1.3.0-feature-40d175-klkyul6w":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-40d175-klkyul6w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-40d175-klkyul6w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"02c5a6e4b2332c8b5928db89a4968e7afa47a1bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-40d175-klkyul6w.tgz","fileCount":15,"integrity":"sha512-A8I7zLxjVGc/79yL1gkr4fM5HcGvD+QzNFtRLoToVqmnJRfQR8C0D0W5TKE+m54gD4/Ygu2/ECvv1dOI6iRFZw==","signatures":[{"sig":"MEQCIExPkNXlfLTH7QogRSSfIftn0cI5JzF5afLj4SMMGbDIAiBzDFAFnT9nR9R6bf4XKp77XDtIvaosIPfvEkvlaaR5Jg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN7VRCRA9TVsSAnZWagAA0S0QAIpQ7N5Df0i7UJALUB/a\n+B/UkwgEAJH3ONO99zifszCYWohSnvM7HbP2IetkYf+yUhlKaqNf7cJqFNpG\na3q1b7YF0NqjbHH7Jl8bPz3FMveOEuo8OoF5IhzWj9ZCs8stZx4PbZUld4R5\nPrLDuPYLqbFT0kBmsCDjCmzFw0fqfiaJfN2Qe8LLG16vd7QGMXuhVc3M8mO5\nqoXEvKZcu2g24d+wzYP/DlDomeVYz1dNQydA6LAe7DUmLRWrANqaK8LHJ1E4\nIHYfPA2418PxfxHK3kuV60ST99NFFzsUetAvMb/RAR8XyWGNldDRwPn8ZCJH\n6YpOhQTzmq6RBVqfoLMOA2u6bQj5x4Nl9fLnMWF4IQ8vT2gS2/pW3b/sFn0p\n9elBnnB03VaSFPTDA9kEa8iEGfVKHjh93Rhfav3qfaJjqmEipVPOhQHeni1c\ndy6xfyKzyBvuQhauVwePDY3rGdLUR6Euka65KkE5RmCKoqUJeF4cf3RqHOyx\nvzILu6U1L4XTYWPjTE4G+LbmtTCviybZb5NQcWK4lPGWopUHE2TDJj1+OTF8\nac0w7kvZ7loRghYoA5hqQc444N1LHNTRJXwxoqYZ9hNrjYDQtnk+wymC6qRH\nm5rtdLu552AtrySoFYGV8/rpYOQgazVHIbYUmLXFNVsOcyYlZSqAIgGOcrj/\nMjiS\r\n=25TC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"40d175cf710bb4ce59981ede1eca8d54021698a5","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"feature~add_enhanced_flow_node_infos"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-40d175-klkyul6w_1614263632795_0.46862639353542956","host":"s3://npm-registry-packages"}},"1.3.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c13e94c2bea09fe54b383ac1604c4f9dce1f03d8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-beta.2.tgz","fileCount":15,"integrity":"sha512-OzJFi3XskrN0RlvLX1JCtYPKRFkzWzQej/+pYkIfxXM7nGHR7ldjeOUHncYIwOXfeMe2BzVIfjEdBq6xHc3ZFA==","signatures":[{"sig":"MEQCICzjpnHLxB4bJruoArZbiIns5kFgGYfMGzqSQI46lC/uAiBO1Z0PcvcRsl5nsd/tgRsQdcfu6ax2XrsBziYshLbkdw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN8vLCRA9TVsSAnZWagAAVycP/RLJX5EwSMA+hAf5BtYk\nK7Pn+Fx2X/khA/MQORuUPKGCKbXiJtqT0uIXChnXNdQxrKayd9hmU2cWLpZr\nxN5Tx83EThGCI8oyL5mNO2YVjEzAm3yq08IQzOqc8MVngYKFTdTpSBrxNa0n\nqPAwvdbqyK9EfxBI++XEmBRRIFP7avQX8wsuf/eJKT4+bM7HndNU1v7fclMJ\nCIqWuPy/qb+2AFCo8u2CnST/MxWi2IkqgRGpfVERmQD1zorjiFn6f+y06g55\niggoODEb1hwTUUDwNK3rE5FeZLG+TD99/OokZrsd4db8O8VSOcpYfnpiRHmE\nD6cqivwVeDI9ZgLdRF7Fb/ACN6soyKD/1Hhh8eHZHdDQ73uOrgHu6YerESG2\nFn74gqiKtJpc0LeDy1xLzfcBnGRxiCGfZU49dixdl4pJ6IMSdALWxFGqTIfd\nAudKJeM3/40td/KKweSUgyMcwJU1bU5KdKtoefiCM1+rWYFUEwXCvgCXzlLk\niYD2vRepRKqRcRI6ZWDJusyzWvchQ/xEXbstRv9O3UQxv7/8tlkvzKrhaJ7U\neOAKbQU86SAmSMy8fhZ4QxLoDjBBQ0NHZp1+BbjIT8+GjxJTVzBJcdozKVVG\nmEJqgdgFA2ddIHFnluN52VjpedZoBj33dxIIsnZycqILgkk43y3Hu6SKeRoR\nmw6Z\r\n=OpET\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c1a32ccb0aed2c89807605c682f00aeb6476204e","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-beta.2_1614269387411_0.609918164500346","host":"s3://npm-registry-packages"}},"1.3.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"86b010618717d1b54c1ce08b024423ce809e9e57","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-alpha.4.tgz","fileCount":15,"integrity":"sha512-N7i4ICjNhqf3heXy9zkx9TKe932i/KCRtCgBxnHd2rmczryfuRIhATuUM3yTM2z6McjdYPUEuCnPeENOGk4+0w==","signatures":[{"sig":"MEQCIFjihBZHv8lD+qkm4tC/fkKPakMAgAe9mz3CobauSmhGAiBQK/bEJ6TcPNALnq03IVYS3x/d2Hlyc7GlKsj1p7fPiA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN8vnCRA9TVsSAnZWagAAk0AP/1+4P7vtCx0fHg8dVh+G\njUBk0ixCo79VpkSlKwMCdK97Wv0QyFXk5/itX0hE6ZmOyU9Fe02Vi3pVGvfc\nQC+CFGPy5a/ko/WIyVWL431NKETjz/HE4vFYjEiy0/dvIBOsp+VSZpjpFFJh\nWqsZbapQ1XGX0NBXtp1QTZeaqQ4msrDc3B9kdmz+oi1TK3QCt2y8fDXqdwiu\nInKfoaVFixXGObPfrkJa3RmaDDK1iq0B6+fcdkMgMyDxMLQ6p3nBFjQLQGWL\nXrLMAHVxA6qIqUtIhoTQVZAxrFYBSqIdTuhR/bPaiPC0KcnFPE6fo4xoecyT\nPnzsUdx0aaCq7WqHPD7gOSzODT55XG6bqXO54LSsaOMvFUTTwGa9wNWUGNhC\ncWV16vs6DUoQ2zCywYmibaEGmfCR9nXDYBYyFQJCzcOXgnVuslDjruR1hG9I\n46E0gqBkSaUMDKPEa/DwGGfyQMXTbakc9//ibaKEd92OjJ2CR0UImS8Uakp+\nqIo53m3ZoWZk/K4TaoLcXo6edKCltmesWHaGUVu03MiFzgb4Ur9jM5V1WHFZ\nMckzarQNSpimaY1qYqUqAZADoXIHFsBYs0r75kcu1DInCvlIUmqhBOU3dGSe\nhlQGf4ZBE277y3zb/x7PY0BMqT8J7Ocs5qLPyWP2DrN6c2AIkTS+vV3oB0Ov\n4XWs\r\n=V2hX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"acbd7d29647be618290c455047a4ced7ee86a0df","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-alpha.4_1614269415267_0.025291620915058877","host":"s3://npm-registry-packages"}},"1.3.0-feature-fdd4b8-kll2usi2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-fdd4b8-kll2usi2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-fdd4b8-kll2usi2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c261e5f7cdc383db996591a43eb6d0b8c1a1b631","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-fdd4b8-kll2usi2.tgz","fileCount":15,"integrity":"sha512-SataWzhp3vYc/THHo8gjEjelysXZTAMHwC05LyBHFxWakKUD8kNntMQLTfgpJwLRvcAu2PAMChR+ytg5z3ggfA==","signatures":[{"sig":"MEUCIQDN1WIJkKLOeoIA9kNnEmmxqECO1YqggMVZvbTrU9YKlAIgKyXySCwYGGBs4k88Q6etnsTlrbuipFiun5TeiZ1J0oc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN8+bCRA9TVsSAnZWagAAoDwP/i8b31zeYF9G/m7y4R++\nYKljoU6XBaljehs+FhTijWtntXqzqPMhS77DKLDmsXJcX1NXQf2lgTzTBDjV\nKVaar91Pejtthx4tsdgpJMhYtcFYRDEtSVBPq4P5tTVAwgTn9B6DcsTDr2WA\nlq3uaoRJfwIAvflPSUBk+AEH76dSEw2oX+fpj4QqgIDeHDR+z9t34r7nzEnM\nXSd0ST1MBbCP6lMfbycVEBCdIbWXNMm/NGPoRLkWho6GB0scyxpbjIHCwiIk\nWZbhAb+xGGFhYtqyAFkxU2+EvrPMfpMyL+38o5f3L5Yd0rQPUQq4e9xLY/N7\nIbn+pr82WfQnMJ7685ZFcEldgs5FBEQrP+zSX4+Yqok7lYwrOagaAJv0v/0h\nFyVueamCso87C2cUI15YDThp854B/1CB8dn1jmDtXYL5gKvfwbEAD22SIQRt\nuW4JyT0s9CWGDuCrmKwadRKdgo+FNcm5z6/V8wioael/XqYk73JKtHY/4kRC\nrcOKxrMWFAvaLWh3PgZ8tOD8s0JOKeVZyLkd/0s5LDsQuh9za0h4G3FXj4MQ\nLQT3zqkTUtVPVsIODrISp9RD4XT46Vqkx0NQrDuBkfoL+d+FDeacgUpC8r9B\ndOoUC9qafN8Vq/gIIemK5o1sw8sn4K4FFZo6nOpeGq0gQdhrxEpEaj1LFIyT\nt95U\r\n=OeMv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fdd4b88ad91d43999252f85c3bcffa25f0a7e1f2","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"feature~add_enhanced_flow_node_infos"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-fdd4b8-kll2usi2_1614270362939_0.5700321400088686","host":"s3://npm-registry-packages"}},"1.3.0-feature-fdd4b8-kll370pc":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-fdd4b8-kll370pc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-fdd4b8-kll370pc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"823b9a7e9825be0ef36f3330c9c7f7c26a20d029","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-fdd4b8-kll370pc.tgz","fileCount":15,"integrity":"sha512-k40YKgoJOFiL+BnG17YCmhZyta+vkTk6R6sAluaCQmF80SlNMDnDqNQvwcBnwa8USJ1LcCOvA0fZn6Lq/S8fVg==","signatures":[{"sig":"MEUCIBTe8pW4okMyE0ccYlgsXEj9kUrB7Pj+ou2xxE4a57GyAiEAnCXQuc1lGiw38L1sPQQpXE6y3Z9dS4FwQJ/Masc6seE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN9HUCRA9TVsSAnZWagAANZwP/jQCOLvqrM4h4yUh2MtQ\nwqYbNbrcnqGsKZOZOeMzmyT/jd7utjlWL5+qQjHMWE/rsjHvf+XuS+o/0Lla\n3KMtCtxcA0upuFXAipZOwabwzTVBsKcso5lUl2JjbNfYc18uqRZ0pKJ96Qal\naMxyxAuOPGc1g27EQEJ9TJB+p9ARZFX0B/se3fOIkuSXBf+xpJzaK3vkj+7d\nIwemmZ5pDBoDRvva7Q7HTOlADRkvkBeg1RwNAR3EOq9zLAoEo1xZHIugsj5u\n2ohFN4AEFLDxl3qT5fJf+talQaCLLky55g8f3sL9MpgsWXOtqNg0TgfncbKA\nwd6KPdfxdPaESZsvZEO0wrkpKfGbnLBnxgBjSwpjPlJHUqdlToSaJ6isy045\nvct2XUgoM2sSNCuO8HvT5L1ndRPztymu6pdua2ROdYHsLjGr0uwzVB96IzH7\ndgHau7D4Z0r4anHPdN+nY2rLFuV9eo7H9rm4ggbWDYhl0Z4wwyera09ceveQ\nxzCU9/iTvhcwIdmVDhewHg1YhwbiNkltURjbWyPdwEDyMSlERx9YnUycUDjg\nDnL4ME7b4jEOY3EiIvIEbMhPw6tyAAaX1Yde8A6Nf9yBRuwMisyo1ahUdQXh\nov66W7rqz1kKw/MxKjhgsleg3oNvK3LKuhQ+D8lBIT5YwOPxwp1sq2EcO2VF\nVXP4\r\n=WR/k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fdd4b88ad91d43999252f85c3bcffa25f0a7e1f2","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"feature~add_enhanced_flow_node_infos"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-fdd4b8-kll370pc_1614270932257_0.9977461333439244","host":"s3://npm-registry-packages"}},"1.3.0-feature-768811-klmheknr":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-feature-768811-klmheknr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-feature-768811-klmheknr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c73975f152b1b23f86d855b499685357c7484ced","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-feature-768811-klmheknr.tgz","fileCount":15,"integrity":"sha512-EhGV5rSKU0UaPZDlozQKbIC7+iPm8DY/6vtIqIkCAbCGa0REOj22pQcEtkiRIRdE0M2AGMBO/fXb/gwx7W9OMA==","signatures":[{"sig":"MEQCIHDkP3AM5eGubTjZVlqEExfyqoqKShzBxt4qKp3PbMI1AiA52u1Sfng5WFx7PayUkNOmN6HriMga9AF4uAAisbERrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgORs8CRA9TVsSAnZWagAA2ZUP/0bU81K+YB/w4gx4IvO3\nn+NJAFdYkG8yJb5Hyl0Kn0u2quQEmIsWn45RVWk40f3eH7kF1+ujcPUx6D/4\nijSTbH/Yd34NG+W/23wQkuKqIGW/HadJ/LaJW2rohK3g1MLUw5HOldIPOp5P\nGXIW1KnS1q8vPkqWLWQMXYknvYqbm0T8etetKHGOdk1/0DpLx5CxOW9qS56S\nyTPkTfvxJkyyzbhDgx02s/f0IGnQe0isW0bWNDh3ILBW7X0BuBTnmintgXWF\nW3LrhYSW+9QvubFKCxDY8xfxFpdYBmqHPGMV/4QnHwjUDWptUAamJ8l/a2UW\nI8YuwJKOY8PYIVsgZUeBJEsOt2zfd82RgbJXiGHQocSPg5We/HI2qQyqMppd\nikfjkqVs8XZk7HPIdXHig6bqu3NxZOJNEALO3/2SUXAaNZOjKPZg48JoezCN\nTgvJnlEQKqUYTvyiaDhzI52q42ym0BFu3PJ+bFG45aHdVKVQ1dQ/0sqvIBjh\nhlGyYOYQIoF9tA45dLVVqgzcDvUPXjTHMEwTK896gjwRhwUpPq7pmg6t98m8\nmH+IZd7BK75nftnjG6GFaqrEi7NlgKyZ+AKe2rQW6QJTdCZTspOGcBk7370o\nZIMoSgVLVVcFsa+6zdoIy6Nhe3qw4nPQwwPxFEItZrS0if8q0rBe3wOrWLv+\nJ1QY\r\n=IAm2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"768811977a5c14bb74ab213797d5e7c812bbbbb6","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-alpha.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-feature-768811-klmheknr_1614355259733_0.7143948328313099","host":"s3://npm-registry-packages"}},"1.3.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ecf0f0ffe724d5b546a64a0d185637e9e4eb4dc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-alpha.5.tgz","fileCount":15,"integrity":"sha512-ILcNo6QmLiWCG+4F9BGFMEJ6nYN3H4J/reZfhhPGzC3izx+rVvUqPJSvmfVLxmP/sFq/CvAvfYq0BYGci3LzDA==","signatures":[{"sig":"MEUCIDN8TRN4ZPq8fRx98uOkP9wF4TdADkRPrb3NQYOcjm+KAiEAgtPFYaEv1lbvvJ6rB56wyjKlwLYbtZNJdogQJT2SX34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgORv3CRA9TVsSAnZWagAAhuMP/2dJ33G2pR8oHi/cHiUL\nus59avCTy1DdfdeIetwKcPq5YyDMlJKqSDD63fWI6R3syyLknoDZvCRAjdmW\nq/VugNLppwxVdJXahkKpPmE+/+y/7LiLo1zI6e8SfD20MxDvSCbAzsCNH1qD\nK7RrWPYz1W8biOIUmY3A3dRttKYDhvXdM+a+HE0vPr1cqMnvD3uCLY8QE2s7\nYVgOhFOiWVEhSRLInBtNoqeD9faeceM3aBl+SozGwOXzuqyMXEOvGfy53rnJ\nDjYQXPz2GYyHP3tBJAM1FsCkq/FYss0FHP5D+rjImugPo31Oohxht5lyZNNC\nU+ompllC8y+4rhvPGyx696DNPfclVBYMFVTCqiflYcGUFPxbPL2UdXPlEhH6\ny6L0C28BgxiJrV4r18PLDmVsgVAifUGl3jvLVCaRss1kLhK7od47UAqF6zru\nTgmQ7vpEXw9+Rxwmm3trd6jdyWDpURDKiLe6wJujdHGgwd2mFhAsrAip3PkT\nFMplOZRLouq/zuUNBWuR3yx53j8sHQ+ZbD0F4IUq6rTe2nsWFThNzLiV0UNI\n563Lr7mavpL2zyJcLIHKELALIJtgaA9JL0NrdcaXKVa0lKXZmKOLmsHzyJbx\nqmTMwySZZ/usm5NRrUpEmVPy5Yi4nIPI97RmmqOktG77B0uJm2wwCBR/BP24\nIKGJ\r\n=4s6b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c28edec70a5d8fa3e95aaabf5d6dd64446b32016","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.20.2","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-alpha.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-alpha.5_1614355447411_0.00883456964233953","host":"s3://npm-registry-packages"}},"1.3.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f0c836f60c5add45067819e5ebfc84413dcba3b2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-alpha.6.tgz","fileCount":15,"integrity":"sha512-EXSvuAaW/DbT/kTLxgGioyPJpYZKDZDuxvoV4U1xbIuWh0Z7Gi1dm0Ao1cBD4oxLTs1pvnyB1wiZ2KctLjNiPg==","signatures":[{"sig":"MEQCIHzT+rNVpuM3ebWKKkp9GfK/I7DRo9BZPznMwA8l8no3AiB6eiZxZQsnmIIKNmjRFlejf+sT0EluW2+Aq4x+nCfP9g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQJvtCRA9TVsSAnZWagAAPiMP/AsHdQhf2ir6yt9qgZRB\nnRMkse8bHJgonBi/zIRiuEpXDfuT1XIukI0KJcBL7QZQFal6l6uzUSTcNRL+\n+1LrSbN3SNLudK6sfqLXIfYkoJ0G9ZUoyukoLi0jPDRwpMvA83HfrkES+1Su\nHeO7N8MrpiDHlPfpuej0o5XBabb2s7KSAC3lyr95AQepxlzFV9mNLbgwZSWh\nwFqsxyGxpdyl07z2BM2QeZFsvThu+lAnSDwXa8RKWnQg09olhjBzKHVgUzrV\nBGzm0Fop19vXwAY7UMPLcvgmzk3/RbJI9a4tBsivwRbmnflHGYTHbIpSdGzQ\nZVn60+lZ7aBkT1RXU3i1EpODYI64DpYgWK64QMdwU8GtRh2KMTexBEWg/vr/\ne0KGNDHQwPFpmZ96aQrhUwi+vKM3E+kAknOWMlPqkAvwPtN31inJY+zFdVkR\ncRIIoiJfLY2GUpLENlA7JwUNPdIk2srD+8GKQjdO6mbtHuRtNvmeOIyeZjch\nm30KL7Iunda5eXs7jYQtbCJe/UT39ZX9hn9T72BKlMbXappbGNee5/PHUbkM\nvGjMs0ZWGEM5YCFJE4+vmKuGUvf9VqZPmsFtRs+VVLECK8/3//9uhy7bxHwt\n5oJGRIJ0Dbpdr8pl7HQvpHPbuZ2XnMD2sh3A1Y1CrYxv39BOUrp5uBgUZ5XW\nmLlw\r\n=4Aez\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4bc7bde0d076c671053f1eaf1298fd155ebe3605","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-alpha.6_1614846956603_0.37693769379869657","host":"s3://npm-registry-packages"}},"1.3.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5dc6a350f09f76bc6e5f28545d471c7dcb2c0852","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-beta.3.tgz","fileCount":15,"integrity":"sha512-XoI9QJCZkV7sQH67a9fRuotmyGemYnkeUQztQYhiP5tBGmVyXGPoImMMMPyErb42isQRgICHiG7MkvfY35ZKTw==","signatures":[{"sig":"MEYCIQDki2tOMi29sbDN4CvshgOmpvD17/zIkZz0vFQ/PIqfAgIhAI6Y+m37xmMDH4BKhfGmCVcrIj3HcuMw9xeLYjyQ6t5G","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQKbMCRA9TVsSAnZWagAAWT0P/An7+SW1GfR7idqjiKLW\n911zQ/WCyL8/7ReEemKBtcs6oz6I1ToxJJvjB9Qa2p6CHO6436w+iJHYW5N8\nEYUgg4MOjWkgwjtK6EDuO++cns8l9XqktGRm5NlNOZmihc3k7k5hcPiDbsHF\nYAWku35vhex8Wwu9UWLKxF2VrdfNNqBO+J4PJJ70a8JNfoCe2IjRjb1vss5L\nKarPbH5z73MFqIHFnbOi7pg1RuZyGJy+EmZGuSXaH0nb1JrFeKfxaYkXNWXr\nU60nHWK3nq8QEFh5t9jRtihoxuelYF0yhSDGP7HMOmrB0fUyAfprqu2N3FB0\nVmtw4vOIMlV59aqQ+ZCwPKXdYu0UC4GEFZf5JoFPrZDvKg8BvWMBZ+5J+BVR\njmcWH1tlmSDmfWrDpUbPpwYl0HKxn10OfFiVzjTjNfu5S27AwJbl7GfEae36\nenf8r+UQ82vhhPAF0lpwrkGwdP3P33VvDsCB8CGNHWr7un9IqPrgpP/0pJoJ\nx/FfeYer9e5tDuLf/SBAVzaTBMxwyvAZx08qlzIJAly/AzHHOgh9r1C4T6Wg\nHLQis7Gv3MiOEQ212yNi+ANOA738lMyrIb0NMDi9uXVPF82mGxVN3tWNDuJT\nMzGHq0ja4J7Cw81pwXh12pO/A70I4KssIcURqm/k8lgRXI2tbeVdZdhrhXXM\nYxo+\r\n=50Nr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"14550286226b7fc9732853b332ebe254cd30c2d2","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0-beta.1","@atlas-engine/persistence.contracts":"1.4.0-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-beta.3_1614849739413_0.15202964936601493","host":"s3://npm-registry-packages"}},"1.3.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3dbb46aebd256ef3d6bb1f44659ca7074204d50b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-beta.4.tgz","fileCount":15,"integrity":"sha512-ra26YzWZixpgvG5j8bTnVZ/toB3HQ7aXVuEXt73/hqVsSBt/Knwik0HPuo/VZ9ybNqlrr0AWL11aerH9r9kdEw==","signatures":[{"sig":"MEYCIQCjimHfXjuKF3yHNAOCqtnhnaE3xnfffb3d1dsP8Zi5fgIhAKu3YHc1Xz9SYzPjvRxGSIIhsuf8c5+CTJ4fgwR9/ZxA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS3c6CRA9TVsSAnZWagAAoOAP/36upby9/F4VcSSi3fpX\n56hdZcC0YVF0INGJoKcLD0e128atXjAS6qKk3z+wgOyAdVTmxMu38YrI+6NU\nzQoWEiq61Mxjt8C+6jX0X/Z4YmUeGrM37d9xOs57CAmlW6Do2OU0eJ7NioGa\nSovHdYCHfghRnm2F6wRfAIrBVW7nZDwZRUfK0z0T6gM1D5yADG4Wydz4L02n\ngO1dU79PQeTNd5z7sTmDiGAdPbWX95K5yFfIwV3brtnLRNP9CpGQFXUhlOxt\nAAslXTKt4UFCcbwusQ322+q0Ac3GuWIQZAkTyZQebhut9NTAqFU1sbbgOSfE\nG+dHme/x+G/zZJgVsyoSZxtIQjSohqwpf5D6quK+Xx+WgeieGdEb9ULC06Ps\niLwORR9z/X/USL1ysrFwDVEpJEHNVFkRgKye9aouzSQgjZxS96HDCH4tEZbu\n44drhIUw5m3m4J51x2kCu6rDkkXWfeY1GC9nKiNBUv5jNHxksqB4iwRgbO8+\nGF6kJwskCQ6n/uF9KVTxzMAt6ygFe3BrA5K1ZX9YGRmyfenBZS9R70nsOA4v\nFi4IX69otCbnJiRkXUHLiZtSuJPQZv2DPdnrP9yzVKQcdWudd2cB0rOwgT5v\nYeDEfZOWaVEQSCdp6cKoyAXMGZb/lph2Doh5JNnMZufEV/jVu9tHJ2zejngD\nZtJj\r\n=TMy8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6c49947281749dd295903c85dabaa6185e5ae178","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"1.4.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-beta.4_1615558458198_0.9995010272825267","host":"s3://npm-registry-packages"}},"1.4.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f7b5ca57241feac7bfc63578e432eb4e69139e5e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-alpha.1.tgz","fileCount":15,"integrity":"sha512-LCYsUYkxoTX6TJv2j5YUuUYCZqKk4pie1ZWIxtpzfZbwHlADGFfWYTLiWW+Yr5RSxlChW5FDfgRpiczLT9lKVA==","signatures":[{"sig":"MEQCIFpUm4qyCgEwXHHPJOw+cP69GomXjmGJjUDt5+hd29/PAiBXNGMBvPTUjZyqOGBmmvQ4fLmG22P797AB5CLJET3x3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS3eBCRA9TVsSAnZWagAAzNsP/iHL4g8rN5TJV86QoifG\nWtW/Wjbrl4M97FLs44xZKFb5PSXuz9ucaks92MdPHiNJJV9+OTvwRlCrmVoG\nFCOcoisv4zhca3g5mkf3pAZfsq21fgTH00Z6xyyIPh3uV7xhq81403qLFa/A\n/BkrIzB43UIWSZPU3fdame9Pe2aG3oQoL0wvWMfw4hhmDsGHR/kEkNO9zZkL\n7pn2In3bZDxbAjNUxpFaLZjN1484LNbOKcxrQGnstyWTOehqzAXY70/LYeZy\n80skKxJPgOE6vs73AWXUmVZ+8OSHg1ZVJUe3j7zCzzdxelCUQv9qOtvZHWb8\nSwysGhEhyersb/LqmT80Mxtb446qPNyQgQs+uD/lJdMW95mRc9jObPhlai1M\nFNbLuX+68FwSlyq6D/H+bcuo2ID7kN44fsTC/Q9iyFAmSOelW9jE+THXuL4f\n+GtOyNoDD/9juRbDmmYjUfn+at9imadmHTuya2h+Ukfq2GBZEnSL065WoXr2\nhv85VbED1IjqEkG4nAOW9DzM/nFV3Td0vxLoJvOBKt8Un5GehQQO7fGGM0Pd\nkWwiCOBaqL3gMvsSUCa6zrlHXsvUF7LNBm10Nx1mMIlclUTBqdxdCE6c4cb5\n+aYHnm6x686gWJhMwCTsHKTNqFyx03Y4Q1bMMVm414IyZoeIcNKAX+IovMzS\nPz5v\r\n=b7Sy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"18cce0dc168356079c3b33c3d9b1cc49ded81dc8","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"1.4.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-alpha.1_1615558529202_0.064040914708829","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"96c87851db637be10a06780b4157c942a4010c2f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0.tgz","fileCount":15,"integrity":"sha512-OMODfr6ihJPI+aE6TkZ73/yOaLb+MXfR2gUPgMydPwp9m+EKb2N1BGo3E7pcHtejudbXu+N4VbVjozsnE6mdwQ==","signatures":[{"sig":"MEUCIQDzWFdB88yUCS3AT7jkCKz9Do5Xnd+Poyksf8S8dq6AnQIgeSjEYEvBpcA1co3WgEjMOEyyoXVRfjyfeoNd40c5UNQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS341CRA9TVsSAnZWagAAbyAP/0V7qjAt+ZrSSYZYK64c\n6Sj/Et0e2bMONdiC1KqTM3hGAkDUNiEz4UFnEDJ9vPCW4mFWGW0LWccbpzyx\nuiStF1JefRSj55cscIaILhgz9bGJdsN0C6nhlRQwn0imLZF6gbMxtdzUy0Jo\nLCEPXa8NLB0EeNqar2yzEpYuqZb0IdAOK3kHm5hjxVhzS67wonppWS6JTesU\n5UFESxgatUEk0sO7Eaq95ZGjCJ4EfXeKDEYaC8w1lL2iAfcGVhyxZ2320AOs\n5dAyfznu8qS12A0O7RpGXbqkB9lkJLh0LjiyFPCIx0HFd+GkRxIMVbqG0kes\nkeyNRjiMcU9UN8VBiHRNuX/ou9Y1DkvMzBY67rwhdrNIyrsxNwnIdujMkvd9\nMHOVcLfE8+aDGxB3wDffGAEbls6vHPSrhXIbgZFR3GJjsCKyBIQUj+TTqn5X\nsTuhtZ+n5pl0bfwC13Ud38g7IqBKVZuUR3J5QFasMpYputE1v/gAEQ21NGcx\nBpV12IW0rBorhPi8u9UNiP5cZ7+YTOqHd+zKQrsOTT7l1twOV1ke3u9fr5Su\nWBLbcdDuxDlTcD4GSwRltukTFg22c09jkIWhZWDGrWzXsu7cgzv97JUU/jRN\nV+YgKpWJD+toc5nCBEebOOSLfVNLlJwSlgOdKWb1D6x/BWHm0rLpSe/mKD5z\nCHZv\r\n=8evs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"1989c1de4b4fe11425fee82291bcf95cb1b345af","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0_1615560245246_0.2757118879378715","host":"s3://npm-registry-packages"}},"1.4.0-feature-5ef4fd-kmajrh9j":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-feature-5ef4fd-kmajrh9j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-feature-5ef4fd-kmajrh9j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c5b1572d80582b2b50ca9b4c5de9614b824c3f4c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-feature-5ef4fd-kmajrh9j.tgz","fileCount":15,"integrity":"sha512-oly6gkYTez8wohPW9OYcsESOK7UZ+NFDheR7BaPXk/TJ3H2z+MOUF8hLC2TYdsLOKIQG7CCZk3AqT1f/G7nV3A==","signatures":[{"sig":"MEUCIGXLn0+gvqQ6wwlHNg+KkxF1fqFFYwUWRIJlK5EDr4VXAiEA+DEbPMp/wmkGIhqJovCrl2zfxTEOeQmBYHmR2Q8F3WU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgT09rCRA9TVsSAnZWagAAXlYP/RuLc1l1kj3bgvf5YfxT\ngmtHbKI7NwpgUHdb6Xi5Ab9pg7/I3Am/jc1AD6FC1eGnoseBSL2vcaiOjzGc\nE6v6Y56xjR6Fm6ObFuXTAehiKQxxVwjI7PxtsY3TGhHTfiXSDfBWvgMfqozO\nHcoNfb+avmnozOpvwdC8gY924KvqQV5W8orZnnZrpGlo2kibJpRshVeEzXxH\ncxkpoJg6yvZSb8MdqcwPCUqsm9XvCdRf2f2XzCUsa7+o3WCJMauwBhJ55yx4\nDGrw3hRv5bZVayOvQ8zN3OesSw7e+ZZdzwOT7JOLvSrx/NCzSurXK9RnFxYB\notmqdqeLis6izg3/AmM3m9UQf/vtcI6jNGrXT4Msp7i7VKbY3O41CIZEIkCp\nHTbdsNZX9ArRAltSum4YRe8cjrCcI48TCFaI6ITpPQKy4Sn4D4lR40lsUaMF\n6NcwG8s8vZRzQoEEfU6rN0LgyLLPvyaNUfucMrMLHmOLODu5hdsmYTgNVSuP\nGzyV6ny5oQQ1uOjbc8mX4iZFPWBSV7z1izqo1IrSujOr79npN+xtIGoCUAGz\nS8JK/DO8Gb5Prmpb3doyANBpHXQPEpRR1mTQVBjZ9+FCShCPEP+tTuY/Xh1a\nGsQDA4mMfI7WWGt2GUg8gowir2XEV6DzHfJYsOnEkYRX69as2TDovS6or52z\nAvgK\r\n=Z+mW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5ef4fdc6519192c6754fb42c11f08e9eb0c52414","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"feature~enhance_processinstance_filters"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-feature-5ef4fd-kmajrh9j_1615810410930_0.3602243417871547","host":"s3://npm-registry-packages"}},"1.4.0-feature-ae5f80-kmamg5rv":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-feature-ae5f80-kmamg5rv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-feature-ae5f80-kmamg5rv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2c1aebe1b643b2bb452f4158d9ab5e5f3b247df4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-feature-ae5f80-kmamg5rv.tgz","fileCount":15,"integrity":"sha512-PeLGV4UpyN+wHdnAToTw5r2xsZjLgt7aEW5Q1vrILNbDThxeHgM1HjXCn1lsberfRQEwnM/wKdQBfBxbSYD+XQ==","signatures":[{"sig":"MEUCIQCBA5liKnZNkWgQE7lwW2NRpfkjcobGm2K/m5jMeC6ZNgIgC38qL0T1hGlA2wgpcXbC6p7EFjxvxM0TjFPT0vxw5qg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgT2EPCRA9TVsSAnZWagAAOQ0P/jyERRm8GBQtTC9O3F4i\nX8z7127WFhH81Cu8BlUMF4vaRQBbH9k00jrOB6j6aXp0k0F64YT+VzHm27vb\nRjEcNr5IevG/g+oHfWvmnyjrCw9jNRi8OTNomapV2nckxWI2hK7rN6TM5Okc\nshrd+FC4JwRwzJuUpI9vwEKHlEPQvtWnzpdMBRYhb7V8SfWgQx78JNdZfjRj\n64kN114EZDLaGGAdtfyOgpbWsT4DQwyQbog+yf+GVTYRVPJbB0ih4KKvw2du\niiC7lQ1HjoBf6/BOgRBl2tSJf5NcTJyXOUqEpdjIigHLmjt/Oy0eUm9REMrF\nnHIocWqwlwn9RUT2Zw8sOXxA/DSTU2MI76EoCpKe31deSG3qt6+NjHTOJIh0\ncDQzoaPwqLYY0JITI53cWP9GYfzN+uRaTi1oDIXJlcHJoJt+jS1lCtPUbyuX\nEFvgLk4vbuKKFkBid6yt0I48Cox9sQj3OQzoi3FhFDQhu6fCNWeE476c+ZJC\n39Uz75F3y/JJnl1K01SdJtk8zXuZdM1YGINQ59xXkxNwJz/Ko9RBQZn6QmP1\nYukbbYOzUlMXjujXI6+0wNVP3Iq315uBZ2XD8V4z6Rq0We76IA2FhRggn0Py\nPgrJ1x32MPf+nfXZGB4aveoeDEqy9ynCXsm7/pnHsHZFEH805IppiPMttETS\nAo/3\r\n=23HH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ae5f80c9717d164dbc14a14bb071623722298f17","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"feature~enhance_processinstance_filters"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-feature-ae5f80-kmamg5rv_1615814925404_0.4643138167640024","host":"s3://npm-registry-packages"}},"1.3.0-hotfix-108967-kmc5o9mf":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.0-hotfix-108967-kmc5o9mf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.0-hotfix-108967-kmc5o9mf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ce43a9bff636e6964c9db3231a85b0fc448dd43e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.0-hotfix-108967-kmc5o9mf.tgz","fileCount":15,"integrity":"sha512-nwI2EynbSbhGTeNImXgQKNqwnu7Ky4F1tHCreXFQAIkGKcuZxV7evFaHk2r8YoU6ySO9WpnWqxX2Y2h6CGOBsg==","signatures":[{"sig":"MEQCIAJ7YHhbSxC7+IqDkWfUZ/Xbs8mqOIlLDwzNiw1mcdy0AiASFxEtYFkWG4hCWmqAbQ6JoKsatbh4g2gFio4vrUpaIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUMtmCRA9TVsSAnZWagAAh18P/1k2uqHcohObC7aqMtrt\nwySzxy59fW8l/o8wxwE3vo9+8/r215o20yUzhOiOlIEek6q1dSXt3LxV2yxp\nSPWbWnghHi70eK62SjQKVvvvJasuqT0Dcv3GwOq5+6Hwy2RQyUt4AVH/IMZe\nBnpot+CN75hT2Py+b1N7lngx7ArO5+XtQhlbPmgx5LOIx36FPzHv3DTZdZSE\nPKQvN8IF6+aDDjq2EMgw7R7YZJ0BGPq9oRg9jicJ2wmOnHsoie9bcBcRLl/T\nNHHUyvEHf+75VIGBq7ZwAndLoCxYWYHbkQeod2rip5xl+EFmjy1cqYH2i9Z3\nteGotxVrNLUUeIteKO0g48aCtnTOvwfj/Xtp87CngjSKdHT0T7rLnLNBXZGa\nQnyCyffNJvaXJWwoLo1m5PVX0RJlKJrifrMjR/LGg0yKNH+wZw8lEK1X3Xys\n5gC+1SL/XZ2bHxdVzyGNPWs5ZXmxWY6m6MSQ8UcWC3OUcyE8OpfFx/fKl4js\nl9LE1TRAlKUBv9zNTudBaHk9ONlzcla3R5kR2C2E4xDUnRoji2DcEPoyH2d6\nrAZGfLg1HvfeT8QHpKA510ulbAeM+3kBPTny+O2l4Ls/7XIR9G5bTqYquioS\n3ZoiWN/pY73EXJiuPvgifEOi1bYVUz+W4PFKPBuuB9/EwD3M4fjFCOHQm7i3\n1d33\r\n=OTTa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"108967228899da872aae188b26775488aa61e6ab","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"hotfix~memory_leak"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.0-hotfix-108967-kmc5o9mf_1615907686026_0.16868027281979692","host":"s3://npm-registry-packages"}},"1.3.1-hotfix-73c836-kmeo71pq":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-hotfix-73c836-kmeo71pq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-hotfix-73c836-kmeo71pq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"321d06b5ec5a1048f7006b3e4eed586392325a2e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-hotfix-73c836-kmeo71pq.tgz","fileCount":15,"integrity":"sha512-sA01sx7Jt3EhPOy6R/hn0SFmjHcL8juwyIyAGniBSl3YjWwt18HWV+SGeEGk5v4tkxH+FBkzAYH07OkJurp2Ug==","signatures":[{"sig":"MEUCIDr67AJZ4Fh/2wYKvHEHajgdMA42uz18HerjAQPzVBjbAiEAliplcAQ6hUD21R2AJZJzMoNkeew634yDgMQfa4Q6Hog=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUx1JCRA9TVsSAnZWagAAePkQAIZgUJNELobk77YQ2+7t\ny4BrYCCVqkKHBDggKysKRp2f48NWCjP+lKb+/GQpWHHxQPK4AGjnU4wPZtvz\nAeuMGwgiNeLfoxsKKOjR4vgeINvhUOWljR9wqpb98Y/1zK7qfi1g1skQLtsf\neIfGaURAj14WK+AKqq4HvyydUwvCbyJASoVBm+ZvUEOsiiJb9/Os6GdtBbLc\n6DZMLlVzBP9jpBFVORM8W4hxGrcmgPXV6KfTi2gZSREP8s5Z6Orp9Ga858oL\nSxTYQ3ziC3vRF66jTBUIOZZGPhY+GYnegitee7yY63HMXPkzIFukB+G5f5g9\nlsYG06uEAh61HNntn8N7kiAjmv0nzS3CbKTEVUzi8oXiRW6vc2F6lef3LSHb\nTxN0i4EQScgkngSFlut8deTTA8HV3QzFdyUKHHC9hPWBm16kgeDpE3zcAKou\nr7rVHNbpHav1I9TSS2caG25wrfF3TXhThvtVn+5d+muJuFY2BWBmQR9wzg2r\nIF9fZlOMlKENknAYOMPff5SZ4GZVWxy1Xwz6sFqSjDVB9vvdiQkBoYfl00DX\nR5znIAznavGeHNh9pdXu1EKb3NrADveyQdsns5QpDO7S1n0G4Z8/WyPKOcqz\nTbrWHzxKqlyRsVTM7ZVPBcuO8+PKA3MTEfqJQFoBNH2+wNcdvtelk5M2w7PT\nZxzh\r\n=Metq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"73c836a00a99092701a547f9f394887610df78b2","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.0","@atlas-engine/persistence.contracts":"hotfix~memory_leak"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-hotfix-73c836-kmeo71pq_1616059721509_0.42177152938253615","host":"s3://npm-registry-packages"}},"1.3.1-hotfixes-393f00-kmgdnlqr":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-hotfixes-393f00-kmgdnlqr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-hotfixes-393f00-kmgdnlqr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4fb2f3f275569f1f895243127d5f1eb1ea1248ee","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-hotfixes-393f00-kmgdnlqr.tgz","fileCount":15,"integrity":"sha512-hUyYjFMaczfay0KUbW0lrjemFsv2ijp1z+P9F/km/O/xNIo00xhdCZAZtmpawwQo4SuonSTxwPgX6hTEJ6TNFQ==","signatures":[{"sig":"MEQCIEo03XuJGkm1eTG9IuHPd+vJ6HFJ1OdaDqQeQuJBjCKaAiBCtL8B1kPsjXfeB3AN8YTGtFD6Bj17ZY/LQtbnBDoZ+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVLCFCRA9TVsSAnZWagAAQDMP/iaYHCxjPbDErYugefrq\n9/3mdSG4dWAUXs3YqNstDwLiYCCnGuvoxl9rMwXD4IDVxXfET/PQYnpytCnH\nfuIItixVAmYILepXnPdXgWsGjSLFVJemciQvQmpVASKGl3i0QBCHekE4OzTv\n8o71wSU7vVZyPF+U3+0DWuEeIqDAdfWt7DGuD3yHnzlGuGRE1NGOnP1Mz7oA\n4teh4OAicigxH3VSnj0yHUPo4QhfJ/XsmLhQeOYCRpuIkxFx4rFyTkvmy6x2\nCKdWLS1hKzAupeA8o3Jxko0rnGHSUwMizAlRNWLgIefvjm4swAEGX2Pshkb0\n73f3OlnqZ1f30rzP4ZnIk8Se1zHYVE5eBKFct/ncGQrbu5gRZEIBE8v97b8H\nf2jlqpmdFRoCU3djrdapIdglRUjmkz9ZLaKRkA1LmUJYMarwTkFuDRlkAdS3\nyQCol1rV15b+nt++/y22isxpWQyS/ekmHfioXudMGGnOv718sYfRy+axmSR/\n/vZspAbohSNmgOmlmOA+ubcU1nn2UtOHPTRGVJLiOkVPP32KjXJ0N2E2iQlH\nxn7Vn31uGub5QtN+Nfqoz29B3sAbHvld7VvugCEluzOeVyYbBJryQtR9D83v\nd3fbf6wS3G5ess3kmBtlVCyjVIxjqzTvWUlVGVjgaVMp3htbp57KGMWSR3Pp\nlLIi\r\n=G8aY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"393f00d19cba389a90d68d5c466d3da0b7336cec","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-hotfixes-393f00-kmgdnlqr_1616162948760_0.5075235154268876","host":"s3://npm-registry-packages"}},"1.3.1-hotfixes-85ee8a-kmgdz7v6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-hotfixes-85ee8a-kmgdz7v6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-hotfixes-85ee8a-kmgdz7v6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8a323cc4d8102345ff3e1362092d669250f1762b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-hotfixes-85ee8a-kmgdz7v6.tgz","fileCount":15,"integrity":"sha512-/dXxo6xEcBwOplqWyqLTbvXymsvWxNroD6/TV154TZ1CN1ZwPNVLN6UySJGxsfTKewrLSs3rqG9Z+ZfTdRpDAA==","signatures":[{"sig":"MEYCIQDNOto2WfPz6ztaJ6DAwK+Owq5GTbmK0j1/B7e4qm+0nAIhAJ7LpKt8/gqfoCE46utPsfpCL/O41UGjMsE4w/6ykdEX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVLKhCRA9TVsSAnZWagAAwigP/2wCrBKkFHL5XAIYg5Yl\nIM5l3fJ8QKeGfV8WxtPnzyWYyF6zQ6T1NFouDymY2BMHzzchaPsRc169CyJS\n2/S6YPEvHSYdudKl2EBfJIf4lWEihgKPuvBAupewDv4Ir0BW0QQBH0NaPwBA\n30FsvzbNpaD8mH+iwY1Ncy209cbTLB2zNyDBaW9GnPjPMGjEWh5pCIIlalQZ\n5A1Jfi2+BF2aTsRufHkBPLHfTzpze4a+qSBnhrCt+aqXG5QOBFKLlcxNFKRS\nF/rscSLpSROOBJyd8wOERQxMpvNqtmad6YVh/1x/VKdSptwYSr86ekqQUC3T\nx60ucZB173KAMktWLOgm3P8U2jEf11G1cRfCVko22fJwRrBVgyustZc8EDEG\n9oHQEIlGudmI3TduKLxMFNKfYLKVRbme9hGXScTrOPNOkj2I4cyf2yQb2gAR\nwIh2wErAcXFq4gAnmADFXN95iuWj7KQfth+pJLnkN7V8dRdNy+lZx3ZvYTg0\nXk6foTYP84gn6ZJF1/8c7NC10FmFk7txUsH38SUXpJypp+uDyiftAnKLkLB1\nx4IrwqD5KNak2rMSOhoGuOYXcgProD36SmGuOhFKb3xrAk1RsfAYZ6UH2i6s\nDAREWbGJHWuw2A4m95ZQE14epdyKC69fzZFiF/L0/2IN9DaC0teRMZzqu1ZY\nlr6Q\r\n=4Lfw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"85ee8ac9cc8a2eea85b6ae49199c037774dba4c7","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-hotfixes-85ee8a-kmgdz7v6_1616163489194_0.9804378409961714","host":"s3://npm-registry-packages"}},"1.3.1-hotfix-f71780-kmgdz2q0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-hotfix-f71780-kmgdz2q0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-hotfix-f71780-kmgdz2q0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7f595d67e0e8edea0afe156470b2def261b48466","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-hotfix-f71780-kmgdz2q0.tgz","fileCount":15,"integrity":"sha512-LTWpSv45WU0PZ6uL+u0qMOYxprvCH2xQ/VNS4q4fl3w0qQgEFMKEIOLq0BuWkXkfkPTOkltp4X93sB1IMyLoxg==","signatures":[{"sig":"MEYCIQCi6iLONaCAGTveiqew+tDi9D2Rg7WhVhDPZ0gYRrW5zwIhAN7I3hMaFQglE7ux73KJhU7vED62DVGikDvL+LzPGNUy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVLKlCRA9TVsSAnZWagAAGAkQAIRuAn72TyPGXeLuKaFz\n7C1X2cJrxBxgLLBYojQcFCOsre5yDlLZ92nk0T/QKt6CdgY/pQOXBVJr3BDf\nm5lwm8ouX9q2sOgB2qzCBsrnHJo/NiVcpLZ6dsmeg1iMB18VlTCIvSQu5XuS\n1OYXd6X/62+d8eTy9u6zXKR0Vrqw93eIoDMNaLUR0wTRFtrL3UCAjFRKL+gH\n1FDpo8OPiojGLHUooatAMsdyhn2DozrxrFQNIdoj95bzOXKPRQVoaULX5NTk\njeF4IqOK8Th1cy141u8kZ34JCeEcKEdt84vbkULP+knhY9Aeko/d9S/hOwNa\nQDYlsLXj6f2KgWUTxprJxBu5r9RLroaMSkwZUkva7L9sKyTuVO95LEochts4\nh5vdruzD0Lnic/k4cX8XAL5iXlrKTw4ZWXnrjrSjyfJ4MGsgd+6wAC4jWwUw\nykgrV8U0XWgG67tR9bUwZM2LkyXVnaBDGW/c2UMAeHouDpAHIHuAHMGgLl9L\ndTh8t8kisCqFSA+D5Iopwdb4nW0tpgcx3kb+kyP3YqZJF6uaPFWUeFCoa5WV\nNF/UKqOrtTeR/UFskYKqhy32OVE9n2IVdz5iJeiOstTERjjHD2Q6ITgrLzcF\nHj4d1Rg9X0PS4MEkilmR50BGqQRDctDMbkY0rrntzN9PBF5Kf2VpC936UYpG\nD9//\r\n=EMmM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f71780fba42285a8c1138e9a9ae2c27ccc44f4fc","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-hotfix-f71780-kmgdz2q0_1616163493362_0.2968126515127061","host":"s3://npm-registry-packages"}},"1.3.1-hotfixes-054bbb-kmgipvhj":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-hotfixes-054bbb-kmgipvhj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-hotfixes-054bbb-kmgipvhj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ddcb5a04887b90dda47a573bb52669e697b2f33a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-hotfixes-054bbb-kmgipvhj.tgz","fileCount":15,"integrity":"sha512-s+K40u/JtZFuweK6+nIB6CqZiUsgtXJak3unPxOCKwyEDKdZS357HRaqwfz46o6Wat5bCm2E6A9kyWgKGrlRAg==","signatures":[{"sig":"MEQCIDpVaUWFh0+/IgHqt5gJpVqa2A7scT36AB3kyU7l6tjXAiAN04eEbpLSI6hDMPKyqkRxoH19HQrqgHVfgraUY4kt2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVNG4CRA9TVsSAnZWagAAQAsP/3dTPT6e2v8t9zFyM4+Y\n4x/APu15OEHGxlCeU8xVBZ4Va1DswAHbRe9GOscnbjh+nOP/QdZaacHG46OE\n61q2dcMSrysL9evlcY9BiqBU3h2SXzBDKky4hJcknOJWYacwMj0+sI/JVj+/\nk69eWFTae7RiYvp79/8Qg8BwoVMMHf/F6GXCDruNlOA8RT4JsSW0xAh7qR43\nXP1GYaitmE3GWKuCRmwrVml3jBSAJAaksHhDajvKo4u+7wEnlKMhAo/ChKO5\n4PJzRkQ1DQ857O0D3FZLt/3SLr1KBztYD3Dl+vhhHYqSz5blsiR2+oEcuIPi\nZg3sbqaFB7WQm9TL5GjlxkqDm1o+C7Nc95ffKfN0AircqETkY3EQX1xkFFUW\nq5IhbhiVPhRR23/77b5hll1TqkXYw4iKxFm0XeXJv8E6eRyngOQLhxYFYv2p\nBJ7btXWqh4agVICX5jMyOuTav82ab+eWHHLzoj+x+Pws6WB9BrOfUxXDFion\nMTgVaEMpcXRtlmk5imAQk1csJUCRhfwSLFh4S8lkU59JW9aELxOA8vwGnBda\nNqX46PGi4cz/Dl5W5MUS7lTFZuRJbef2fH0+NkAY11f2YVqafu1a0b2tUSbh\nHIg3WVarrHPJKd+seVITWG8AsH+q9gdUkUphSkECuu5xkYG9gEshO/ucAlC8\nU/EI\r\n=KkAY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"054bbb46288a479a6f148652f7292959d71923cd","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"1.4.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-hotfixes-054bbb-kmgipvhj_1616171447901_0.5657602255057181","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"401bc53d32ec048f4dfc13f8be0be08d49784fa1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1.tgz","fileCount":15,"integrity":"sha512-Q27fZsmPvBy/oXcFMwoQt/FGktjVxm3D0gaXM1sKC4h1epeADbzfBmgR80X/BIPWxx+z9fapE31BIzDYN8+gBg==","signatures":[{"sig":"MEUCIQDwYQ+CJnLnaAa4FjXiX+LcviGIacw3S05RL48tXN7iuAIgYR9QAeXZc+/CMk5v/krvf4PksXl1xOw1hIaKRQzcES4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVNG9CRA9TVsSAnZWagAAa60P/1UovwKbp+BLKlZImGJ7\npo1E9fCxIhPyEFbSmKSSRc6mrajjr96e7w6Qjl5E0/zLyqKF5cKqyf3stbP4\n3rzUY+RfBC4wGcZn6xGMgxusqAi4UjNSu/yYRLJlZFXsqo4RG0eBI/TCz6Y4\nUWSaN8PcnUcpEeeL7mpQBi/B2L9pqq0AcN6jVOW/D/LW1aowfcqCEJ5TsEQB\nbzG36NUg3tq7g2csAU8/8rWhQgBdpk6whxmMDdPHUfPuOa8jVq36ObklRD4/\npDA8y5JCV3J5oCwvLrM9ladyFOMlwioamitYKb3ZlwLGbS7b9Ek2zjJzu2EL\nJf+30hPsJgor0d2Kriz9c7MxEojwX5WFw70IvXbNgs6EI5gWXQKYWEvFIMhV\nC0rl6H2On/t7Ziwu8HurUhSHWdYLMS8JqOOtsG5OXhNkutp+RA6N+8FcwCfR\n84/M0TT+ztkiF7K3lFsylWGSE/Pou14w6LCrM+CqrCTXQnCVSHtglNIG9Q7s\n8+k1v0BlqnvxPwsbbeLeZ/G8s1qJNieDhK6XEdzK4snmWg3EG1PcsnFdqg7k\nFrVXpNmzIU/8av7ZQh4pLIW5YziNNdMjizL1EqoT9dEJ1Xw5aQgo2PDf5BD/\nupGRsl/gF2ghuhSavBF8Xy15szSJVwzc7zVVifMnNltll5EPIcAitiWssT9z\nYIp6\r\n=FfRe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"835bd3625051aadabf6dba808b75607bbdef5d91","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"1.4.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1_1616171453123_0.8062736804986677","host":"s3://npm-registry-packages"}},"1.3.1-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fb5c7e8cbf6c3ad54e0848bb8496f6a80d008fdb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-beta.1.tgz","fileCount":15,"integrity":"sha512-z543tnfr5wvcjkyYrnBNDRpvRnpmmp+6B1CZwusCR94SDHUthu1oNTEAdTPXkRZUY/08Lp/hLsdoJAtjuPDcQQ==","signatures":[{"sig":"MEUCIQCe23/L3V4Hbo3h+7mWwVkQ8wZeCXOG/HWuY/EfHbCZ3gIgamJ0CFHfrl87xJCLNX5wDhyOKgszTOhlrUmIpYus73g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVNH4CRA9TVsSAnZWagAAUdsQAIe633NuaBAtD7sGMWns\noAE6OaGyBijYudJZrFLV7i+pHkaKZLeFUwgW4BDXzUtWmvgxoIO+Qwm3bYj3\nCq97nx9PpQkm5OOxUg8xEJsO9xkYooxml53R/KWcsaVys7mp4fliFkOF2tRY\nLkxhca7axM9+paD4IcBOgpeOGD7uiDt7eVysxp2U7rvweup75n7VSX5MQBsA\n7DFD/yIub/gcC9aBz4JOD2JTnFn9e4KelIT6DqNcxuHvlTqNQELyBFj783p2\noyty+2v1b3qJaJuqmflxB/JA2DqoLQWav/FevAXGpFk9DMIrXIOPeuLvbcIg\nP2ZMm5UuUH9nBScFmz+1ODN09kpG2Le8ea+ITXf5hNseEuXX3tzq5agaag4w\nkhRRJ2T2dhvrNN6aryjE2KyDO8dzXDsSZZKjzB/SUJpSRQwKmCpNm6efzCZS\nfQE6VVq3f/vDeg3FPppxGDi5+vB3IE/uoO3MlF8y7uNKH7wAdkP2E03ANcKX\nGZTClMgw+Z4xCgFK/lbdk496rgJj3q0YJPHQdrojtNg3AZok+B3gapLurQpE\nlUS8TyZCsft7QwX2uYlvqGms6+zP9ZeXYC+Tu8j4Z86Bb2EOlWX17iec3ZQ9\npt9XU647/nXYxglp5YVQWRecnCD1x+CMKOuKQ7/cWs8EvucoDq4b04U4K5Yh\nZaVD\r\n=8lOj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"381b54e43842a44ef7de1a8e3ae427d3f07c82e1","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"1.4.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-beta.1_1616171511596_0.7715418920254797","host":"s3://npm-registry-packages"}},"1.4.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b6d6488559711e3223b8f91ba59829b5bce8b674","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-alpha.2.tgz","fileCount":15,"integrity":"sha512-3gY2qPKiQImrVnoAvFn0peYrlq52xeMnoSFPtBNki6rYULWZPRCvmIYk2zbHgyy9MYZns6mkKCjA3SP7HvxXAQ==","signatures":[{"sig":"MEYCIQDXSsZBeufHPUlvIwIaf2LOcISuaPXndLizj2kdlvOI7AIhAIm8dYmrlKOiUpoXpKfi91GnMdq6kJBZYxekyK1wX5dA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVNIyCRA9TVsSAnZWagAAoJ0QAI5b4Ne38hRinK9LJeNU\nxeCCNfKejZfbAfoJTmPFepu+tLmxosMIjcAAZA9DZlRWJ8bPnA2/yyGIzWde\n/4Sw0uuK5PzcY6MQ9V6K1jRyovFfGpe2bmaeCFIO2nOGsvqxz7Z8v/t4D1o8\negwfXlj/x35tBJpHSnWS9NHd8YYdEJV7c8v1vMsv/V+iZsQ+qv6Te15X2KyY\nloyrnQh8lm2n+8TCtZoeM7XXRDKRLRoIRaAIn5+GwgD8UIjwe/P3yX3w4Cmw\nWtbtaFTSFkKHsLPqeyEj01bEY+fLuidzxdEsSnzHL9/KO9Uyx4wU6r4xjNlX\nb783cfIeo3MZyJHJ4HSfXsdbfXOt+te6zYKrlvpwEsB0saHk+i1BkOLK8/t6\nFybDys3P7sEZbWGfVQFoFV7niWENl+brikfy0CcfwPWwCLpYh53Gw2TNRieJ\nGVpxiaidiQwJFmhbIaydTmI31HWwqH/BY0qLdloGlzO1dEpeD0BXVox015cR\nGdZY/iB5/PZ9kWQH3zNQM3JF4wwxuZG7QdEyc5ieEQvErlEUVCX2C/VLmXm6\ndEELPT8yk9wKUfwknoceg43Sj/4eFeWB3zLiNnRNH03vYpR1MgGZQ0TAWV3K\nHCXljcmvvDrXxqK4Qm1XXM/EO5GWbbAk1XoiEdW3dQIsLb3IHzRLiPqFVmQe\nmzG7\r\n=xpqz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ca71c9d68f5b43a680142ab529d902fe28e58d98","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"1.4.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-alpha.2_1616171570354_0.009425094505804976","host":"s3://npm-registry-packages"}},"1.4.0-feature-d477a6-kmklyedd":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-feature-d477a6-kmklyedd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-feature-d477a6-kmklyedd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9b74b71ef8cd51505f48eb4621c0b181048b6251","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-feature-d477a6-kmklyedd.tgz","fileCount":15,"integrity":"sha512-uDZtAYhT1U7vfSvTGEjRbD5oLy5hfIfOAvlH8ChaRD/sZB9rr/xErGnKYu+76RQ1LXiEx3MhfI94cZ3NtxSEFg==","signatures":[{"sig":"MEYCIQD2KqbFGaSmntJfu9ud9ngjo3i2Cu7CGuaN/gID15FtWAIhAKS1Ap9Av22GngxhA0VoX//fBz5LC53tSss3/hCgB5Hf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWJe6CRA9TVsSAnZWagAAx3YQAJkxsPVOiI5ZU7jV9EHX\n01qXV44rZwwslDKgzwL6WtXi3/4f09FdwlEYANHw2Z6yG827Fuhh+UNMmHN8\nE1QCiwN/oNh2CtU6ncgzypRJtVVmebKkeheZxvaz9u/YgAY6gQ8MUVSiZayQ\naxyRpatoSB6kcQ4WSX+JmD1o9RqaLWAJ5zVihowylSlrJ2Xs0HKMM/4kRAx7\nj3A9p3a9ejyIUT5evRhYxIkgjfjk8j8zyBEgueQ6yrHX7jiN88jL+XoEpSmO\nllHb8Ui3bUheoQalB3fdW9l3kFYJs1yJXWW6DtKB7tzrOBUJpVjf5U+7nH1x\nbEMz5tzDAv1r/hAsK5fGmUcQTHGqI/RyIwifJpW+ZEy0pUWRuRqB0SA6OFB7\nhwYTznf+VGKPjC2QtJ9cXiB8ZouvipFdqgLGfJIYKQLsjh1RZJuwhjPXkwAh\nGDgHPJ7V4duc7wqVYxRMMpZN2iDNnqtj06IGYLA0TjRrB17xZgWS+/K/8VOb\nI/QPgyurii41qKocKgYWKrcSQ6w21lWLQD8rF1hvpv49naz8GxW882bO2mYR\n+J+RCjlE/nJsj+5muzV/1oR1NINzIyYHKjHcTfSVKk4qWZt3SYI4KXtwecZX\nPpU7WFyr1qEeSX4TnncAUpmLdFUJc5ftLse5ejjiJJEv2PHFRrF19129unrQ\nhrkQ\r\n=kcv2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d477a649b5aa7aa7eae70e0c44bec66955873d0c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"feature~improve_deployment_error-message","@atlas-engine/persistence.contracts":"feature~improve_deployment_error-message"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-feature-d477a6-kmklyedd_1616418745823_0.19076147638806562","host":"s3://npm-registry-packages"}},"1.3.1-feature-848d50-kmlr8wxh":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-feature-848d50-kmlr8wxh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-feature-848d50-kmlr8wxh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"322d66483116adac5ba744a8451c8e4df6244b51","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-feature-848d50-kmlr8wxh.tgz","fileCount":15,"integrity":"sha512-uT/lMzFueJ8dBIVR9sWjTJldMzzeIH8rrOBPkp5nVKg1YYLhgVJT7w6kU6CBy4x2X40ysCc3lk5TtpJlr5Aztg==","signatures":[{"sig":"MEUCIHPNyuhWAqTB5c/WO/QRO9rGnJ1n02daSNDZwjjliRGTAiEAtcS2aIZ7TiwgOe6Q6mCp65tGQBGc4bTRzj3f2IVHYJ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWaa1CRA9TVsSAnZWagAAXXoP/jMRwQLsS+oTBCm6yaq4\nggHDbjlvhqiRr4YnFf+uliN154tJoKdPUUIkOZCQI4zrVy18zh9WjvdO8gIZ\nNU7FY2WxwKuJBiebMfuNmaAqOMYZPi9feFt8tTjBgiP9r5PDeN+h3lU3HAxG\n04up2Sbl+ThtU8zJHFHn8k7zy5/NzEhGhlDs9s7vPD6KLNrNGwK4hhjBEdac\nXzxoK1W8cqk4ogQDAYBGdybp1nj/IqmLFStHnOOhWtzZmb+pJmjRxB4KEX/L\nbz7pCR75N0tMlW/lxk2NO+9zXudovtD5jR6E75LlUu1taryeg43HgD4MTT8l\nqg5AV2EwhpvBY3KfLZqchxIVoxMQcGhJsG08Gd+0q1MGaKjUzrQQbhULn7D2\nkrgJwG4ViMTxxPBlo9CFVYi5CiRo56MYqmM7VtrkzMXL9hLJWfqx00nVvsYj\nJmKDcRqJ7X9rqU72omrwppjRjsjPTLPubd1lYITqdc/yPhGJ/jwPJI/ZZz3c\nEkHtCy1Qtk+P5mQ0SSo8h28PtL78Lez5m8+tcPDiLPf9/NNQJX8406//wcjj\nfebmkv6sbhuKFbAt1ky5iDCdCrLM9e4HvHJCTxdTaeMo9KY6e8SIVdfyt5b9\nN3klnxtEWgrpTm9Feaac/SOsnSkJZbXN/YsLya40ndXOpw2zQM0PPXhIoHbj\nzr+F\r\n=3LV+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"848d507fb0d3b6aa923ad258761d6049aa39ffeb","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"feature~improve_deployment_error-message","@atlas-engine/persistence.contracts":"feature~improve_deployment_error-message"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-feature-848d50-kmlr8wxh_1616488117359_0.06664606272402374","host":"s3://npm-registry-packages"}},"1.3.1-feature-e850ab-kmlsu0z9":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-feature-e850ab-kmlsu0z9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-feature-e850ab-kmlsu0z9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c1d7e7a6c0cf15248424de1be11fa18ed65d859a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-feature-e850ab-kmlsu0z9.tgz","fileCount":15,"integrity":"sha512-pLlsaktbRv2B7rQfLVadIVlktWZA1aME0cK9FjH5StzVVx5t/PCpSx898qC2tu/XEMn70Xe2F6QT/XzLk2+7dQ==","signatures":[{"sig":"MEYCIQCQN25LO3t0/ZL+yJF6yAF7mCqFmkC8o8MCPAPu+E0e9AIhAPix12GNaZT/vIwIgQr1ji3slXsEBonH30iwpmvkWP3q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWbEcCRA9TVsSAnZWagAAEnAQAIEoAR00+g0vxxOMs3T4\nVydpyXqVH/eHWLnQX485natWPIxfKG631KgRB2aXWO2OR56iYOsNbwexfZr1\nq9cS48o5KjESPapzb/t1QkB1j9NUDOrKq0lt0qSIjjGksHihZ9kty9gCILwH\nEywHX92hzlWDC/Uhu+TATzD+R5ReslPotwVFYPQNo2K8y9oekwxZkZQ+NdnG\nM8K6NtyN4/hY0ExpYxZO/0jCcYQM7Kvl4gzbdckNpRADSyxpveGuQhGo6EWo\nXwcb39ZxdtpHK8OgwYN765b6y5BgMoqKBypGjy+ZjKKcF4ZvIVyLdGAmgOV5\naTSoOu3Bpsz9iVKoejAKjNRPs0TNrbYK59L54g1G3XQhz9zera3+7HmcL/k5\nTpBKxshkA/eeR8PHyd2DNv8PSRNt59Dm2fSuwPC7eMm0YAM/KH/rrHeQI9mC\nVy0g5D1Qth0N55eEA7VCEDZOILUdkxM2RWKg6RlQi2CkAl6Bza1MRvI1lyDP\nTCB1H/KENF5VIaUItdETr47B6l2H179l/cGUYpss5Vtw2blOV0S2tK2voUxu\nc3KjicNA19Br4ZIln84Wq/tvBI2p440MOVpjoX5vTuM4CdtMmhnD9l3jiUVe\nSiizL52xcStWS+eRRjG8jx2YfQ3vHWON4XiZjU0rvz/wcQnqHLg/o08fL7lX\nTEZ1\r\n=TbNI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e850ab26e2f714428711e2523f4ad26eaf178794","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-feature-e850ab-kmlsu0z9_1616490779576_0.5462669403394615","host":"s3://npm-registry-packages"}},"1.3.1-hotfixes-415209-kmlsxrz5":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.1-hotfixes-415209-kmlsxrz5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.1-hotfixes-415209-kmlsxrz5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c4fc107081ce22e4aed331138965a87118d41007","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.1-hotfixes-415209-kmlsxrz5.tgz","fileCount":15,"integrity":"sha512-W9cL8TfoAqf7mnvuNe28oJk2joHz0DIwAse6DaKdxcVhDkE4ZE5pfOa/x/JFg8FYvu05lNtX7lauosPgLB678Q==","signatures":[{"sig":"MEYCIQCvTMQE/xRxv4PKcMtHD4branqJnui+2VwWCam4LU/TpAIhANoYekjCRH89aYBAOCXA0ZvoLZxH9/+5lObhulMMNk1m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWbHLCRA9TVsSAnZWagAAPVUQAIIZOZJ4SRmnD4kvqdSg\nJdGjlBsY8PHtgBDkcPnP/rc7KHD0YhqI6SIRvaoQXYsq07r6MkGX84Z5aqvT\nTN0agsMJ+c0+6aSS0tbVUl323ECWD8hIKJp43Ma4zMqlSmEi+kgnCvAaVYuj\nlAHPQFdUsvFsx7f9j/D5jgN4R5IRXWftMO1+JYP3FlUwwEqNmaomMdDfpWfQ\nzRrreTGxu9+tq1gmARGJHpGU/ko3Blqq70ldbJxXk1NVJFMPt0n11HwjHfB8\nGWbBbb7o4/p1P3YYqFnq7TYMdnFtSUCiut9nXc/AiA/J1b0FB/xQzOnshTQA\nG4/PGv9S46aIYpz+aXBwd1F2ItTGg3utM/REgTBWbHXZ/PgHDIID7iKWnlsD\nsduNB7mx5a8stTR0jynnEkJAvERCBWo6ysS+j8TexHwXrTDN8j7ABSKjW9t1\nE+Ar0Bsw7oZBLItOP6X5+TWABLS3vwXeK7qFcXbx1U97SdMmxu4jQhRC6kHL\nyXDNdt05Lb/+1vdy9UDgsnKDDxiefdif6VYdAZUKBApy9KExlJWo1zwIPhjU\nPKDGPlLGewZtFij9FQsE35UihdbLnaPio5rjIhJQmVHZA81GglBQzyZqukxl\nq/JYYs5WBGStTLZ8os2Qtkh23e9gLRM1TMPxjIDAF9ZIMg6Poev/9ZljaC2M\nuwJu\r\n=mZcJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4152096484b4406a09a678b269aef896af81b640","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.1-hotfixes-415209-kmlsxrz5_1616490955137_0.26309103747300777","host":"s3://npm-registry-packages"}},"1.4.0-feature-491a9f-kmp9e818":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-feature-491a9f-kmp9e818","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-feature-491a9f-kmp9e818","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ec034abb47f44787f0ecad3f4fab6047d843bbab","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-feature-491a9f-kmp9e818.tgz","fileCount":15,"integrity":"sha512-9bfFpFENWIZ+dYsOCEWbJE6YC9zM8Xb1HdmNeK8jZS3lc7Rsbkb4vBKMqCJkV1Gh5R0ZG0MqXRkESzejjF2AUQ==","signatures":[{"sig":"MEUCIBsxxl/M+BXkbVOwoLrsYmODncPRJR/d8eS3t70/mg4zAiEA8M1xaiIfUwwKSQ1J8HeeRaqwyyKb9OZ+ZbzcCrp8MWg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXOJZCRA9TVsSAnZWagAAjscQAI1FjTlg+8bgo6fNKxan\nMwHZAqsjyLHFTQF1vH+Y4yMAYVyVy+BFRWiQcCNeZjN5p5OFf5fehtgs9nye\nH0boOsmn0JJXSXkJaI2Cpui4D+IyD0QCbrkQM5Hcf9l7btTPXtV6FY7/7nAC\nMG5a+Xa6u+BiK4E07iBXCgFISvQdQUJUsVSevBI6sXnTfEF+Js/i+FGlwU6F\nh22ZPgOBhGo5mxKsoFwBdsNrVXPJOpfs0V29QOGny/3BmJVR0gHoo+KQfMRN\nUp3wpsgfjAEjSHSVYoQRrOIIRl6/40YgKWh+fRO9gbZo4eGmylqp/WqmhGH8\nxsB5noIPar4jjgURtZ3JYjwvzU3wOYBKIvGNz0npa+MBwhf69+UhrwDAxR8s\n524fevbHW2eub0vAdfQAHTSuW5MlZeL9SQ0LgN2bovZmnVVbJ30qf36CkpOx\n1bReMtbIdXkazLNxtmTHqgV8ITE3KbBOdT0dvfirtzKSc31mDUyM5ogrOtGe\nka4c7DbvTqL5oX5RUnE6tr3humcJ2VxvWTFgyBt03gHZVfS6OxYsdcUmZG26\nAuyyKQdNFg0xxfHV+VbNSnDnopureILJ4J49YPaJ8YvHYCXFrMv7PYdv0wrh\nzh0Soam/TejEUrdiWqM0IejYbnQCNYLng/8k/OjvrUqEazk2gayrGq3yYRtl\ntHkk\r\n=vpeN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"491a9f1a0ed6648c0134a423fc74ba9cd1b7e5bc","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"feature~enhance_processinstance_filters"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-feature-491a9f-kmp9e818_1616699992766_0.9460824067350104","host":"s3://npm-registry-packages"}},"1.4.0-feature-ac0895-kmvtihm9":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-feature-ac0895-kmvtihm9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-feature-ac0895-kmvtihm9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"447b33e52b19615555191f6da9b945628c7060e7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-feature-ac0895-kmvtihm9.tgz","fileCount":15,"integrity":"sha512-y6f/pk6QGtMHfPd3SP8KzEIGgRFtuL7WTyHvmA+feU7KljCfweMJDhLLR9GmWlAyjTZwJ1M6Kkoy38zCIUXwgw==","signatures":[{"sig":"MEUCIFpN00Sv85sj94IO/BHR5QRgqgXTCwyFNFD38QLo0S2xAiEAk2NPP8msRpvn5A5J37K9KOazW7E4LD7hL98JonRFNjI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYu99CRA9TVsSAnZWagAA2CoP/itUA2vjqtMXsQgDkYAc\n/rLyLBvYjZNn5pvUfcLL0yebsHxiQ9XcNcPiTUpsGz8ERP2JSRuBFOkimzJw\naqGCrHAWj4thUqiCi5lQjXjbf3CSb4rY2i3bInxT1QZ6AAdsvdblUhnzs4LF\ntjSUtLq8zw+dRYjnJGgdMQbh2I29m+5K555NuD0jAneNXp8vdNl0ywcjFOd0\noDfYNJsEjtirbmkKrx648UZZ7ILrSjMUin/Dt7I2egAqIxSWJAiGr4ix+kAQ\n78zG4jA2E1PbH3j0bue/7xsfx1XQ4iOfNYar3wQf11c6Q5UBAhlCD//7Oi+g\nCxTECVDRDetOv+Ru1yIdrBTKWuym2CFEzbVT853/B7a86po+4lAsmn3LXPFZ\nKZzZzRhWUYPA0kt47b479oFrfQ60YIYl8YX4wM02UcJKma+FOn4hCv3YbV2R\n0XXuNYOSwPQenpR16LePLJRbT3QfxHtk4PqU6prBlY6g1/lRKuBNzMYlSSR7\nz6quLsRiObOtraNYTqvFrTfYvEh89G+/GcmEqjWCSJPvXd4qgDuLlF+NZvM2\nzKCYd3b6SfeIhsHKHKcnRRIvje0UkQPu56qU+zbgRmA61CjoWiLFpHmcYXzi\nuHbcIyqSvxdSmB4m9fPxkacH1IZlBDHL8pF79cx0yWinJS6ayT/chfPbxLpv\nbcfb\r\n=/Djk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ac0895cc4e12966441b988840a926c9c2a24df6c","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"1.5.0-alpha.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-feature-ac0895-kmvtihm9_1617096573102_0.43937581975590545","host":"s3://npm-registry-packages"}},"1.4.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"07316649707224460d1644f1e72815e579acf762","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-alpha.3.tgz","fileCount":15,"integrity":"sha512-9zCs3EdACeaK5tOaa8e5edIUQmZOjRAnUxl9Se+TkueHOzf8X80MGHZoQELcz9VM9n3jR8GJ7as85uRdYteduA==","signatures":[{"sig":"MEQCIDlmimuJI8VRqaRC7WJ0Y3OWo4/dx22DF6xCoa1mQ8ESAiAyD7s2mgKaZrZA2gcuzlwJ+iitiHBfNunrHXOVywYO0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490463,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYysBCRA9TVsSAnZWagAAeyQP/RipF7iFQssVTj4+qPF8\ns3avNQnrQCaGNkULO3HuWXX04oTtYpiOHoS9xj8paLt03w6PingpltOmdrqn\nd9uS8WgUntsdK3ohJnEgxzWAhMzbfb3EMex07PWnQpA4n36oJ151528jOapr\nRblGQ50GLrFSivRL0H0/cdXLV9+Gazb4hKs43TraQxx0N376IEzRW5gExElk\nQy1MwYjpB8n1i0R972Rk7LKXmb2buw0cCByiB4i9rxGOz8Okh1K0qsjxZEUk\ngqgpe88vhqnUD+sy7Cw1ZoFe3bey2f9sOKXQvepUjl+sPY2+U3Bon9W3Ohj4\nFSN2CPh5in5Y4xkEoq0SvHVsv4URlx4fzsjf9Q4j3/nKQUGjqc6AvvVnSEUO\neRMmNs9SaH9y79VxdxjJW0ogDs+HxynkvpMCz5VutEX06FrhTgjvkwhFfJpk\n8O+C3rNG7uJiUZx2xZiCg/72Wg7cDfsBeZhx3mpPcXj9smsPbjY7CVnmeHTH\nzi9ygI1ADv/RTraHl1v0osB+/1slN1EuFIBkzXrgpeK63wGBIjSXhmv/rNwm\ntV1U4FXEou73wpEWccmSoGanUdC4EoXlnqnfeLNa+VXrbvh2gFn+PhQ+TLpn\npRjlgjr0725er3Xm2br8eJvigXIWFAr62iZROsdy3J1L3W2XHyOoNaK/tbXr\naZq3\r\n=0SZH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"94bee91be9a19546279645e793e4283eb12ab7ad","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"2.2.1","@atlas-engine/persistence.contracts":"1.5.0-alpha.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-alpha.3_1617111808722_0.1379372073176468","host":"s3://npm-registry-packages"}},"1.4.0-hotfixes-76785f-kmz4qu7u":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-hotfixes-76785f-kmz4qu7u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-hotfixes-76785f-kmz4qu7u","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8ecb86bde786db9d577d33bcc7ec5666d1fe4646","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-hotfixes-76785f-kmz4qu7u.tgz","fileCount":15,"integrity":"sha512-uVeWvPn6jZwQQVfBOFvUfrbvoQ0WKSgPpbjMlWAhmfgEGtBV4ZO3ofUZN1nFDdnUqhPwb9RdaPgGPg6gg7u3Ow==","signatures":[{"sig":"MEYCIQCBwZYlb8SJGohLmUyGs2lzb4Des5wj7HGoKh21TzX1EgIhAL7Wbk4semJtkYYT3i0NDvBxirO1N64LajG84ax1500a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZf3UCRA9TVsSAnZWagAAFKoP/jz3le5PE3Muy2kOp+rA\n0KyyrUJP4wIGDnOU0F+lO6tWLfQ9dpC4nm+Yk5GOWle+2j7hE37oOE6NsB4j\noMNBt1gX4HLf+x3y+KCP/1fBqek987JNkflAU8n7/onCUSpiqCw5//OhnH+5\n38GsYddSO26q21wYCPWlMcmkMp34cE2rrCOjHX+ROj0sumZYfyFS+aS5ObYm\n+uIyxydeEFZW5fh3rmKQ5Uur8k1/2PUmLC4oEQT1ZRHf+14MrgX3dQsTi7tY\nA/ZyjpQ/6macYT3d4DT/tdsDGudbg/nCBTbBaVXvLrB2xjSQFJ60oZY+ndRj\nusVHlyHPj5Na85HvHp7NwVRIdejjgEpzq+l/ftcesEGyQlq3Ibj2XXx4cnUu\n0/7meduTo/cFNCpJeP+Ngacxcxhxu0q1p4gH569Ij35VGW78Ku4yrmxTZC1k\n+F8gvWI3W3MWEHLIkxnSAnjTkmEp0PBimm+DSEMtVLGZBdavzl34AgXTvnmC\nKWgsTef4wiLlEQ8SrhL5WxrMa3TCKn2PmX/B49YcIwS3Db93MvwlziGlBXFC\niuDK1AlP9tia+jTyGyYmt5TYPfYaDV63SChiOQPnvrR/iLwDMPpkdQ+uoLie\nhzTxqBwurWKPGTRviUm4MV8PUlsKRrxGPvOqKXAkG6AzYnP41u+uyo/Kp0sO\nBtWo\r\n=bExv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"76785f0acf03107169932340ef68ac7e2f0f7389","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-hotfixes-76785f-kmz4qu7u_1617296846976_0.6774864523967026","host":"s3://npm-registry-packages"}},"1.4.0-hotfixes-779854-kmz5q08d":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-hotfixes-779854-kmz5q08d","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-hotfixes-779854-kmz5q08d","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6f35ae9b02236dd7da22fcc9c0e5a95085621688","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-hotfixes-779854-kmz5q08d.tgz","fileCount":15,"integrity":"sha512-AcjmqjSqMDgB6ut8vOXfET6GZ83K4Y/HOQROnyRBo3fYcadMuHr2UAy4A1smXwJSdhVAiIU/cfGSATnmB2E88A==","signatures":[{"sig":"MEQCIEKO9yG6U0V08nrDIFjVaaDu5PSKG0i1+IWZ7uGG1A6GAiA14Gv+8fMz4ePy3YzGGT/sXSk5ZYR+NWTQnHiI29fC0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZgQvCRA9TVsSAnZWagAAqloQAJLX2GuEW+ukzFVlpqjq\nOJsAsi2/RUtlE4v+VfDoveCBQtlzt+n8jo0JzAvWEIXbjk29/BONNZpFom7K\nRTqrMBkZftVtP/JsffW48wBy7RmvvuDTGMjd29/10jncQHTTI9OUL0AfGtwb\ne9CkFMzdHTZBgAnpJK5mERAmDBR6IFkd2+UUbq+d59/nj1Y5Lq2tKjA6fh3E\nKzuXfkAKl8bPdc9d6TbBUNR8j0UhuI2+zwAx7zm9g24TMBPCW2UxV4NU1JXt\nhtAm8EYOaMbg9zDgtzEdn6TbXdXX/y3Km7f0GsajZH7v1eui+VhHw4xFa0iB\njqcqnVC57763ygS9fzT8RVRTLht3mhkM8u4xK0gXnwk+r4nALJpfFJGEIPYo\naVheKzyLf9bm3L/kmqFnwYoctsglhVCiW4x1eUGLocNUmuuU2WO9g6EnxiE2\nWmV4HJyvwJGHXGe4scSfDMwTlrsJu5vJ7yG4THo/sd1LuybwHjodEW4C2lbL\npjKzHUi1Ph5x8tGdmo56510PumGlx8vf/tiMqUH2d7vawHwXO2Qe0yQf4NLS\nMiOKkqhTCHNTgXPcUevpKfxKY61APobXaRehQsvJ89MHI51RD4Z+DlokMg2O\nwfxopbO8L6WVCUXcx/7jodqXLO64daUAjEZ1aN1ExSSAF2dj2jxPXLSAtH5/\n/Nwe\r\n=OCRg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"77985466b02f92811536ede29c7a94d2a4b18acd","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"hotfixes","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-hotfixes-779854-kmz5q08d_1617298479145_0.5379745939551124","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3c32a21208877783261441ac3906025c6a8e4ede","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2.tgz","fileCount":15,"integrity":"sha512-SxHox/6DnCLbxTOkVcogTcVXdUx+sB11NAbOs6s/vjHNSTDb6GHApGJG0zL32X9h03J4dX3HlsCrX5R2azFBlQ==","signatures":[{"sig":"MEUCIQCgArMivYbXRWFrRPMEDn/b510rahlxJRlvMrvneVBxDwIgHvxWNxB97aqNmjRmfk7Ct3Zb/WieowNYO/6dluQ8u0U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZgsUCRA9TVsSAnZWagAAzIEP/2kkWnqktCa8i0G/4mWq\n+fOBRpBi/XNpndPvbTu9YN1t1JKcO+RFd0S48ZVex6qyTQFUsEwsw/Z0sQ1l\nu9bhIG79qr+wShdl3KnOjRRZsTE3F1SZB+5SvbR2bSjdiOL8TQ1VSJPMcpuv\nWAH0swKxj+jzpjUPYbIsIHHMwC0oT0Q0xFP+afafgXE5eQ1FT4OHq+8DXJ88\nzfbjhM3dqf2P7A62nMmw+B1SZrThdo6F6Tm+10gWM59z/addM3uqCnX1NUbu\nNM+G36v5x7a41lqRZFnGw/ukrumiW8+GRid6qN2qOxQJDW+pEn+nKjWE2wmd\nDqBGOjLjdpP9yXui+wuXA7McbRluqxRiw6yE5ZaX0JXu4IZOCb/qqlNaBkTz\nf4fL2d6ScLv5hE6NmI2mk8/q9oCgzLkM5WW86N0IXsWq2Pd4BrrZfbiEHR02\nOfedGHuuOPeMPw+SN74jt4i8ZUoB85S+hxzJw1ZgeUC2KJdrq+WMKylW4ZZb\n0EnFFduVaiT02k0BWKBETBrsuw7j1aJ3HbKtSHwpkXjy6g+415udMGSiXWM5\ngHndFWFxGqtpYZQ80kjq7RwGaYPtjRbIaT0oyuDJNGr02vMuB8lWEG7a1rZP\nx8dhtD40eOI/DPEkQALutlPq4bL/CPWDKL4kw+KpGIgOfQPjiPExL8zY1eNw\n76Vu\r\n=fI95\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"55499dcbf1c852b7a893b83a46c8d5634e841b66","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"2.2.2","@atlas-engine/persistence.contracts":"1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2_1617300243773_0.7605061564627986","host":"s3://npm-registry-packages"}},"1.3.2-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eced6191f8e44d82e54b7f236676a2c8a8476d6d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-beta.1.tgz","fileCount":15,"integrity":"sha512-gRjR1v9Q2yx3FlWrTVhY/k9ebk0siWsosKHXMSPWeiH/o8Ak5Y+cUzxCINhWB7rQf7+imhbsLUWpoTJ47FYKGw==","signatures":[{"sig":"MEQCIFu9Rg/5OoZ7MsJltsdKdYR9jl+sPrOggsQsUcfFP4OJAiA8RD6WoIC6wY8RnfR2z3dVfIsKGNkVEElUtQ4VGqbMIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZgtGCRA9TVsSAnZWagAA/YMP/2vWm2Dj4V/XtnK8Peh9\nS6czb4m9oNQQlxhJUHesSLgIhvqkJNOFSSbdM5ci0DsYXdEhpnVI5c3eV/vw\n/OBxx/HI9Ew4NLP6CKwsM1XzpteAsfY56vid64ACh2d9XnosDqAZczRSYB5M\nxG64NLlFqc2kHhpqgAOq1F5tlAsi5t1hJVdfzpbTu58NC989V4AOVOiWAJs+\nYWRcPod9iFwYQjht9PAny32nyAG9pFZO50UoPHXq0Xelyk6PaAgSp1PXKqob\n98rJFK+A/gTZkod3pGKT7m8vJRU1i6MWQl9/lIOsml3oo+OicmE/UkSVK7a7\ndIRd/03FuEWmgu9NnNzXX3Qul8ykBjXnUcqXis7cZfJDrZdJLz9rf8WQpfC+\nKPM5XdVyD717cp1hZFaHfwjfO1+B0bePynPx8WXNeB+dH7OZEHbJbpIL1KzP\nsR3PjLaGUo1KDT6j47yuduGJ61oCODE0zJCIxCf6W7XRMU6Yt2KfqWkG8zkj\nnBXl8lgAJBR72geZ+j4QuMS4quFMH7Y/PPyNeCFWyDJP0eLhPXnZxSv/fXel\nEG1UHTeOPDS2Qn3cgZXEn3bKgSh+8KEMYwi35/xdn9W1Oi7FlZ6KsSjJKV8f\nSBnZbjxyCgG4px37Kin4tuJ95j5uq45IGO6+mM81XYDzbVCDipwwsC0bUsLR\n3xUJ\r\n=/PBJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a66f62aadcff0aac4c7f56b6d0b0cb79d97e7aef","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"2.2.2","@atlas-engine/persistence.contracts":"1.4.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-beta.1_1617300293563_0.13104731771988676","host":"s3://npm-registry-packages"}},"1.3.2-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"332dcc741d9c1a0aa14f46fe027c99383bd89fdf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-alpha.1.tgz","fileCount":15,"integrity":"sha512-D4cENctkdCj0LhD11T87lIbmIGwOlvetTFDcEGNcqikpDXc2p+xOm+yhf/+5ZV0ughHx4/oA9fuQ9/KzpaBedg==","signatures":[{"sig":"MEUCIFDj3dk4LUZPvnk5CO5bgvZxRAxfq8mfhVAOggkxFGOmAiEAwxkx9PH845dC6A9yFnipeizUA/DEMqZ7nPClS3nFZHs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZgtLCRA9TVsSAnZWagAAaG4QAJBgk81xHBRdnf+JG0eD\nLg8QMiJJFnbr2A3VhX9CIhy4pdXtf1sfCVnviq5ZotzTlDHH7qe+FrhIw70F\n1FCHMm9BsN8t2TPSWjnI/Iqs/9TVqf1jg9qhd+12fB26tPvml+JpjUXNJy2O\n1c0gf7O+7rC8s4VsWVJNChk6ISvageVz7Kl1CCf/GiJSXQcRjHBB7J9iDf77\npwbch75GS/LfZmFiMOpjBeX3NN/5zjLdtC99+YTHBcXUpyoFZW6nu3PkrJPD\ndPwT82+rTcDdfz6NrVXdMpfR1cQsHoh57NX9l/DPnwEiiwVF/ZKo5eYlkeq5\n390pVsSbUuVNbAtOan47wSoPKEVWcqeAxTX2MVUetilYTS/ZFyhZ+TFq5bds\n2YQbSHfTYPsVWaTc0HPEM6IIZ6EHtH4xJQL8P4JQ/O12eZSBJd093ACW5RBZ\nj+4qI2lTO1FiExkCefeJ1KLQxlyyW7SQjY0Kpv/L5nlxqaAOhwWYLtEHcRps\nzhCzb/qilUG7GshtjjssSr/81ieEFgD3214GdmkH1FcJAAhXrailZczbLWwm\nDW2xc6DeG5PNQZ0BOmaQTctL/VE68wQy8Q1dQkp3BxW7D+LTD7ttSrn8Sm5u\nbBj4I/WG25yB6A32c2iyHkz18RWhGd7qWGgdcx9daABl1JQHWwFJOmh1LaAU\nHWWU\r\n=5pZV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"200254d2fcf4ff72a6228c11ff16a40e62eaee4b","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"2.2.2","@atlas-engine/persistence.contracts":"1.4.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-alpha.1_1617300299343_0.5548737127778738","host":"s3://npm-registry-packages"}},"1.3.2-hotfix-995ede-kn8to2hp":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfix-995ede-kn8to2hp","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfix-995ede-kn8to2hp","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e3241c017a65eb7cbbc41a7aecfccd85f887ba0c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfix-995ede-kn8to2hp.tgz","fileCount":15,"integrity":"sha512-fgfsuuH27w7sch052Fdw7HPqm2oqo4hwz1mQudPkDW8iPx9BilHarkHwprQuY4gXzyKhs+Vt60XZPP/CfsmGpQ==","signatures":[{"sig":"MEQCICuU3F8p/N60todkGtFBL5/dELF10W1lHr7R3bZz9/QsAiABtILa2Xt5RX0fz5ltOI/VXAfcgvRC30Y1gBrup8AdLQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbu8XCRA9TVsSAnZWagAA20AP/3cS1GqjzVSF/mHQPJl3\n63DGm2gd8uYr8qW0BzvDDmbVq/pLATqJOMqPLJnWpMN4lHfI8sczITT1tIIJ\ns2D666aoedx3PQCA9iz5f1ozS+hz87wQ483K6SnVkoCmj6FXvRuFSHokv1iq\nUfFr7t4pX8Yn4cC1gTJnPvw4KZ85JrbyRYogXihIfKtYx7GxsxahnIln20OH\nppls7AFyzHLnEKLMJCkS+in5NQQUZcs8Y4r8a+Q2EpsIikSgxXmD/aaQhtST\n8h7T4joeZlOouFFF/cuGrpX0n1TcGSea+pvv/rGBOQ3NSkNJ8MKTZy/m+MS/\neIepxbRzC+TCo+YRQpjTlQD2k4qMAvMGKUpM5jeELe8u3ODnIW/2b8k771X8\nwsesblCbhgUyyYimuBxMIM2jBGN93zKhPzCCfPtG+KhmvLjMpcax9KLxa02K\nD6kZOOi3dwNJC5Jy8i5G1EuaCxrtih+Qtpsg8BHyBQaDV0n9CqIU1gaX8ASA\n3uPrMLlaAOHqIyUFGexBBlCSNQxDJ/vRpiKwjDejokzv0Imv4gt0ZyCSLJQ7\nUfxru6fL2I9feXPdXcFNejszwqCb9ZZtx2ketvJtrnWywMsbYDeC0eEzgsQs\nzUQe80nS3GQRhBxRKNguYWu8nbyc/ZkJ9Ke3hKQGKA0CxGO3K4tTCWZ+uJFI\nny3J\r\n=l/CU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"995eded991478be5ad53ee9bd8eb8818d34984d4","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.0","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"hotfix~fix_error_messages","@atlas-engine/persistence.contracts":"hotfix~fix_error_messages"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfix-995ede-kn8to2hp_1617882902681_0.004832249323889037","host":"s3://npm-registry-packages"}},"1.3.2-feature-e0a97c-kngbfgg8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-feature-e0a97c-kngbfgg8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-feature-e0a97c-kngbfgg8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"50b7316adae3f1828806db353ca62dc904fa9083","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-feature-e0a97c-kngbfgg8.tgz","fileCount":15,"integrity":"sha512-22j51Qi1aF1A3MrnZ+vDc4ES1XXx3Ev6X2EbpFxl604+EGIAO0kmVyOfef+PRYVV5lNkNKyXTn1KHn6rJACteg==","signatures":[{"sig":"MEQCIE5VYhk4BPP3TkoCxHh7YFd2M1mPOC240c/shpRKYkgDAiAQ0gDS4lGhRjSIQNomtePmk4LVsgqeZgZy2VIuWAKMmA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgddj2CRA9TVsSAnZWagAAL/MQAJwVz5fcFDubzdQFOSwk\nOFtQ6azRFD1CmKKbpoP0MwPE8m7g2ZqO7YWcacelTe5n9VeVXeSQ0Ktnd4+Z\nm0BfVDPXSRt7Jwpd4XKC1zE8NKxFah7UD/vPVu+y3TVDarL65xm7bltilUat\n1h4krmPWDe2GMhPFsuIC/FSmaLDAc14rCkziK42WbtvGbz0QfAMaknlFMZqa\nVTKvJVSIDWgQSulp/sX6wOEhlTi45x4WinP3sJlvfT/7KS7zPiFPkR/bzkP5\n7SIuozWM4+j/OTlX8fCFnGlazgXMdHb6Lqvp3ZIIipzGdsGkM3CVkN495JFY\nOmnn1FvbLqVvWxJY0oepvH2QRRSPLHSS/KxeQTm0ObcFa24DTscRnEGTaUUi\ncF/dbNcpb20ebxxDlzW8iX6Ejln8zkJPWX+SIX4KBYONphYWb0V/5KR4id+z\nI0veMhEC0ppWv7dAZ6V2dvo5hlXmyNi0WcnCNZ243OO1A5yMJUF75lZ6DSyE\nFSPOzHMCpH6e1OvgS8L6Y8zcm1LIBqa25lOHj9i1UJBRlxIjvpg4TRA7hcsy\nY+qrvOi/WOL7sgN6rSoO7GlzqG9WjmbZEwLnPfOS1clqkmW7tHqT/R6T9GKa\nm4jTsKmg3VujmXZ+mMZKlgUR+IwbLzszGKEGTtLc8jO1smZQj8XujCFvNb9E\nzyOo\r\n=L7Kq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e0a97ccc24517df3a8d3020448929011b220027c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.11","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.0","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-feature-e0a97c-kngbfgg8_1618335989949_0.10416181899216626","host":"s3://npm-registry-packages"}},"1.3.2-feature-106a9e-knhcns6q":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-feature-106a9e-knhcns6q","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-feature-106a9e-knhcns6q","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5a2f4c939b753dd8f68d80b72f89ddaa8b7d9e02","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-feature-106a9e-knhcns6q.tgz","fileCount":15,"integrity":"sha512-2rSkLR+PlQlRonwzwhZ5wtf4NYmu3aBZEPsFYxxnqvLwQ5k7fm1tidrBWYvoGTKp/gLUulZ+2KghX7V7L2oq/Q==","signatures":[{"sig":"MEUCIEaoUwaPyCF5pFFRgLUgmE73LWwpOx5DGAMQTGjxs6geAiEA7BTAEG2jfcLE+K6V7kYHmD6sTuscuy3iD1wUrUDo3hE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgds07CRA9TVsSAnZWagAAfxwP/2MPZrWvriWzYpNNCFGS\nwGb2DIK5z+sWTxpA9j7pK+afy5ttzGIJvYVEtKMpNH4atR3zboyaz8plQQCb\n2fy2RT5aWucZyZ7NbYUUrSx0mWFq8ZbFUamAHSDv/ktWk58OgC+ILsXZk44h\ns1i9JOAe1fap4IV1a/6Fdu+YryxQotljyryk47sj+IYhvPerIaU8xb9KQhU9\neQLd5xu03vTux4MSsiXcA+xLKNNPapQk5A9RAItbapirbZXFa5dccK+J/W1w\nt614hH4CeeBJuHpa5bajThdpb86oiKmE4IvHDepzsryBKUcfdWYmQX1uOAJ1\nDv6aFadjjzkvXHn/PMNO4ZmQNTAjiG8VRP3ODo7L/Ip6zXi7I+EKg7Ly9xHm\nrOb7+H7cCLLeUhwQOIJoFuyjkt00YhrXf9BNhcakoH/OefuHsjd3lvgO+PO7\nbD7oK5K8VFx68IOaE+Sze/CLtsLg4fi4iLKtGinHV2nORVSmMWgb41EuN+PS\nsfhuNI68jOWPVrZfznQshmKmbphDwVUzaaPcanPA+t9Pzr/hDX+vfIqo/nIL\nVPw7ybSCiYnKVmOO+bTm82Hd8uFf6WuMTqfRC7F8qGGHwBg+48S9lI1J2DLS\n67krIz4MNaRPKoqSZipUQ0ImNEpBw9y2gGUhG9Vcj4DCOoYfigv2D11lHK3C\n1IW3\r\n=3iOp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"106a9ead7b2ef3e5806a160de3e340bb09114f6c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-feature-106a9e-knhcns6q_1618398523109_0.9042244896323863","host":"s3://npm-registry-packages"}},"1.3.2-feature-47dacf-knhi03n7":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-feature-47dacf-knhi03n7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-feature-47dacf-knhi03n7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"08dc45d2ffc3df719f8c2d8f966612b0a97e97a5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-feature-47dacf-knhi03n7.tgz","fileCount":15,"integrity":"sha512-5PRqGD8aKN+aE3RCUngmqmpXRCLosasgkmpMNgYwDE6xmJm0olGXgo9Fjbkq8uc63v3YO4BMWIt8Ta74i5RFpg==","signatures":[{"sig":"MEUCIDdiDxTQdyp1IPuq7plVUJUO7j71OBwioTOTDClOrjx1AiEA5ibWXdvidVGzHQn/7GuMiM9QKAbDYuRVHg9cZOMFN6Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdvBPCRA9TVsSAnZWagAAfckP/3C6Ra+6yYUaQephGgVl\nMRDmXksL2i0WDuK3a25Pa6e+dW8owc3qy5y/haZ6D0Rc0JeiZdy5fkjvyXVl\nnNjFhT2qry5Al7UWbjgu+OqY+qETp3rG+vT51mMvR+qHo9iSQghYUY/ucIrz\nvl9Bv59Fq5DFY3WIqHhj9AYYyN7C7Yu2lrz0Z/sKuL5+CSR8Yj3maptV1RDa\nhZfL6HrmiwVSGWpclNY8YpEbVFMWhNBRKdKtVuHF6vZg/hRrK65mIdZNmVWg\nikGv2UoTw1VML+7LoiHNhyav8tsxJRFgabKWNUbtLdHJEPU5IIi5skFKeYV/\n8a5w6q0P65lBh5EtCuwtFOolARftB1THjcoUFvFKWSIHejX3QFccFYgd3XMq\ncPNEmQ2CG5CJo6hZnc+NeH8JebycYWGsM+u8GpfVc0TdqPkzA55qvc4bWGIS\nqK8y3k8tVpKlewV28iIN7XMdBxIfCpcfGzvHrK9s0KOK3V+tNzL/FN4GsfBP\nNwSFHpw+otnrFwYy+EMcHikOe6xnZK0fxzRMqesUtN8fXg6nCVZEchJzfIcV\ncWQsfi0fSfEdCjXzBhUdKu6R4OcYMGWsj1HbXqaYHerRI8TufWlISZNaJCpp\nwiP97NFVFbuwSaSLViQ2UGQBzIH0vLuFXFfTJJtmgIltGaCPgsgTFRgDY4Ec\nAXYJ\r\n=cKnD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"47dacf4a797a691df047bf70728c8fe7c8f6104f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-feature-47dacf-knhi03n7_1618407502675_0.02081055694980738","host":"s3://npm-registry-packages"}},"1.3.2-feature-240d87-knhpznxd":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-feature-240d87-knhpznxd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-feature-240d87-knhpznxd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ae76550212747a355dbad5a3bb3f15136e5604dd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-feature-240d87-knhpznxd.tgz","fileCount":15,"integrity":"sha512-ibDO1e8p1YUR+5pXDlF2mchzc+i1BpEWlV/JGmCX+DZPuZFwNIHOYsc5LNy8Vu+osyxAKzYXdcTNiIt6oTqGEA==","signatures":[{"sig":"MEUCIQCITxRlhuu7yO+M7I2PizzfxNfTkJCSEzI7ILdXT+B+ZAIgaun6OhcUyCCyEEIp42NsdlHWZVkqM4+0IfGM92vUarE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdySxCRA9TVsSAnZWagAA4H8P/RVfrbhfxeV00lSUNuMH\n34vt50mv8DuJASK9lv8/TQC5c3g/5jH6fT/n6D+AKwD10GB0/nS6whvbJIlX\n3/fqevHbaiZyQRzviTMLMHSc14BWn5Jv2hhRuvhs8Subowwx8gNVN16g62G6\nfEgyUNjdShN3NO8rNyezuB3Lr+nLSyFYsw7TLSoVzavNTyzR0JjL7bU/I6ts\nIWO7U+fvphILwRd8pKTL9vhy2cJfvBCVY7zLH8cxgcPqvGdcugmQKgT3ZtcD\ni+EpTsFnQkcdpa8UYLhyEx4/JzpQ8bV0O4+hLF1YE8d6a60gLf5znPbANdvQ\nvE5Z0QUs0sgllyN90nldZbLw/dn3L5jiXzCjAnYquBshwWt7YZg+YVSZvOmG\n41QuIiYz/NknXutuJ0u+HLBq3IhfYVwCjEa+gGR1QghSJvbWg7gp4vcmnO7i\ngYqNl5WysiK0Uo48tlaHe6Z2SF8eo9oLmn90QC/Y5Fe2bYfz4hj/YjJ/PuAD\nkPhVojoA1SxFSLsYZL7U7dZvB/C6hcKy5XIce9z+iiuvntODzjfLnNKge/VD\nPjY+UOCYB1pS8u3OLLB+C5O4Vm3o6YU7apIP+RxUOSNY7aqsbvI0DF3ym/CE\nfoXcldy+ZHIZQQH6IK6dAIFCaRKHu8B2x+vVDxXUcteKsJYTD/W+WdhanFir\nevWh\r\n=EmDQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"240d87c66026c3f8fecc8dea561357d8543cf3ca","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-feature-240d87-knhpznxd_1618420912684_0.23075258258963371","host":"s3://npm-registry-packages"}},"1.3.2-hotfix-113a56-knj7erh9":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfix-113a56-knj7erh9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfix-113a56-knj7erh9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4868b130c105b827b5d361cf0595b929a24ce187","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfix-113a56-knj7erh9.tgz","fileCount":15,"integrity":"sha512-O3ffcw6LzCxjmOWMdM4ki789Fth+VMslKP6nbZJW6ZntraHS2GHNeg7qCSCrG5ADM1/2kkwcU1iOrfth2nO6JA==","signatures":[{"sig":"MEUCIQDo+7Bm/+AFhQgAXFh2SxKyvkQHhgIJyNLQZoe8uA226AIgUVlZUO0SBBFfYQtGVVGlttge+ZXMN7uXFfQs23fT4F0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeIM4CRA9TVsSAnZWagAAEmkP/iHnV/0/dTQ79GawMudK\ndCa1oDmYeX48djoCWj4wHZAy9m+ohIL8nc1b39jHbs4CrNARxou6ZWSWWjUz\ntWDx6aMn2VzxuXx0Uwt6Uf4vIde/Io5enfjeo+Pz1oplw5w4wONcFjLXhniL\nVDRcV4uHyG3R1gUDwZMe9rVNAaHF/+JWFgjokLpA/T6MuOTgw9Mf0PtFYQK3\nItWt3IjqE6Wu7pLHUbcCATDTrhDEcfxaWBZ2EPEnpOG8US1h4UMqfkDJliI8\nDFLo2FL1B+PqldQY3BtIyELTi/QlQfG1rDmiTvTekZirzIlb8PTKF4jIgWAa\nvRro96UxOFVNzX4skGNmii74cTRrlYYbsuMcNxooSHVa7fOjT+L5/TpxW6Lj\nQ3az4Gm3BkypDzzVlu5F7NsOdA/tDD82GoCTD9kc9VTHFDgaq2VQ7WqeEjBP\nmK7+VWLG506kdwOI9+3QSQ7efbeu8/96qX7eYDBarz++Tm2NpzBuWxBp/bRx\nwGPnVWTTsL8He/GMJNL6NK3jFqdA4Xmua0ET+CyDeZD4hlym8S8fYHODLD6P\nwwRTwRwxN5LpokyxOce4yDOuGBBTHORF2FNST5Q+yJD92I6HdlGcAO8/6ykJ\nmtyVt8nP5JN/zlbWqTgBeSe+2hRckk/rL2KbUbUzBSOBIG/8Wg27IEhqYlk8\n33J3\r\n=5/l4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"113a56794061da571831362b328f97bdf239948a","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"hotfix~fix_api_queries","@atlas-engine/process_model":"hotfix~fix_api_queries","@atlas-engine/persistence.contracts":"hotfix~fix_api_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfix-113a56-knj7erh9_1618510647986_0.8807535118459608","host":"s3://npm-registry-packages"}},"1.3.2-feature-2ff021-knjz23xf":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-feature-2ff021-knjz23xf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-feature-2ff021-knjz23xf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b4b9df8833c429da1b1c219dfae1f7ec122759e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-feature-2ff021-knjz23xf.tgz","fileCount":15,"integrity":"sha512-Ej2rQVscNaM/QsLqjSpI+S2xheJZj85BZoLYZDqg/yjYUqi1JSTOC5nIvwoH/ibdch0siEUZXmj1l2h57SEcjw==","signatures":[{"sig":"MEUCIQDsItCMCepaV98pTNgMI4KDQemtlRE0ztJ5gjdKwwcUnAIgY7ZbFGfAwIBmkoz0tUqelnmw8Fc9eNt69qp/C39zLOs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeTibCRA9TVsSAnZWagAAzfEP/jx0kf1iRDDKAzlh+MKx\ndX/G3W9rEjcH/dbmvJMrXeWP8wNT3WGnc7NTiOta4mo1xYAIx+6Ma746aSHX\nuIkpNGg0OeixbqrkUawzyihG2pH/CXoqd5Tz5tE6oaj0Sf0zQAOq2P99LiuZ\nGVSThC7sqSkM31obXa3JfS4997SDhMRY95NwZqznnp4+3Xx9SlKNRhcgLxGs\nJuCMBFIzVk1WViocsKFEjd4mkGNHfPBypXasZFzCVkhZm98Ohktaq7JE99G7\nZNmJRuf2sFIzrmmQsBWQVjg+ZbBvjmWxw1BkZ7wRHwjy3HAn1bQkUuUqlzt5\nb3QGDclpDBYTjmtYXg8ex9vGWIHpHTZ31jY//rKYHLQrMxX4trlQreWpFSbQ\ni87FhLZ/EMmQ85aBhpZuhk0ts73VOARHETSgCyNkFuXx1yFUyee74hq8Jk66\nCWX0ZUZ8oqKyYS4OkiuXwGR1Vbs01DgtWGBVbnpVvWugC72VoCKrHD7X/fer\nsdltNRNjs2Rt10U5/wLdk4uDKTGjjf+QISS/eNy6HeSiO3vtYSaq128zdkR6\nHD7/Q1h28ebKMGA8J2yplBZ5UlPMbyhFSm3+3B3tQNU8wkdaq+/tS4WV121C\npN7WpR0EXAfu8Ez3ITIOcoOwzzH32HnP2RTwWd++ZZsmRKW01ek7I+pKdbAK\nG+b7\r\n=NmVA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2ff0215de2474a2ccc8928a0e5f74455a7e7d540","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"2.2.2","@atlas-engine/persistence.contracts":"feature~improve_decorate_performance"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-feature-2ff021-knjz23xf_1618557082795_0.49575829784720193","host":"s3://npm-registry-packages"}},"1.3.2-feature-06e36e-knk2hsju":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-feature-06e36e-knk2hsju","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-feature-06e36e-knk2hsju","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"98389ae7a8f4d8c280243f19be5f49fb90e01423","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-feature-06e36e-knk2hsju.tgz","fileCount":15,"integrity":"sha512-FbTdYr7x6pwFojaUSpz4MYx1b4ePc+xKISi1S4NcYVeZCCv8QT0G8e1NS6jaok7MAtny/SAVdrrUGBJXGSHc6w==","signatures":[{"sig":"MEYCIQDv0rJcuTRdLqlIXiSMslnV5qIW9USds0GAZQ/GofZ/UwIhALExe/MZcRHTmqRbYOQ5pH2uZ88cAVJdxz2jUus/ckxq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeU8VCRA9TVsSAnZWagAAzosP/1jIeOVv15SH4Gz/F3t6\nEPvEgCQSgaUiU/lIZOlzsLbdjnWWWnjVVCo9aXx1uI+e0B8+yigtL5NLQo/7\nrAz6W1ahdMXDMF/DAcetXYUaOE4VpZE2DXUrnzNHlwVB+siHQz+8aMD6QA1b\nLWGvlwXkLATMfmScpOgTRxRZcfl0VMjumleSB61QfVkshfBmttNRH4XOJbXY\nwm2QnyRCP8wg28G0tlSFPhxQP86hrMDMbcgUmZwhj2TP7ifEKtX0Ue3Y4rQj\nGA6aSUmGdNjlKXEUi/Wpo0acxH6TdJmj6+BJEk5U1TE3F+/rmbwgVCfoRlaR\nC1+/yuRxYyT3huQCPzwEB/ZdgJnVaGh8cY6fbUqFXHCOh8Vfoz55h1UHYLa5\nTJdjNbUpRcjUGCznVPUI4MnwfmWH8qA96yDQscWFeuq683RBfug/u37+3TJZ\nF/mBu3UAKs+clESuckM84ukSUp3tClQeYHQa/soC7cIiRpaPaOJfZd3FuDk6\nE+oVjrPqf5MPOb2SxGANU3fijkQK7NsYdXKEJJPW1mbeuRhWhQP2S2VqWXlK\nhK6p8zbMYa1nSWS4tzQ4Uj48SfYKBNrDeBeLzW60vk0SDCGNwrUVIqk3VFcD\nnXtE7255AZYN2Hn++OYMglUOs147W91Pupggd9Q9vvfChExPuYd00EDgv4xt\noM0w\r\n=UqkE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"06e36ed0e3542a573a460555ee834ccd20b72d8d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-feature-06e36e-knk2hsju_1618562836555_0.6943661005183666","host":"s3://npm-registry-packages"}},"1.3.3-feature-20a7a1-knkan7xt":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-20a7a1-knkan7xt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-20a7a1-knkan7xt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a14a641f098ad5f51b52d64ebda571096c78d25a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-20a7a1-knkan7xt.tgz","fileCount":15,"integrity":"sha512-hzqGFnpBALS75doJaDHhBQVXKU/XOLl111yCZpoSmi74G5NecVBvVN6sNKt37EH68CrwCiLnXP72ZPIMb/Z4GA==","signatures":[{"sig":"MEYCIQC2ulFExN/PGf4C21q+hwLkw6R2oeLeFejofjaeVj0yTAIhAOzS94bsRA26z4rgARNHbpr5tRn9Nky82i0RF3b1pRzi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeYSdCRA9TVsSAnZWagAAAikP/A6/PU9BwhBntCqlmhdM\nl4fpKzs+LwQ1kuAXFl/waCt4PKjxbF8/38UczzIdHJ7Exwf7Rs9DUgYK9R8f\nzpOoyBHO7F5cPhceQ/50Q5/NyRzrrWK/NTuR9UaBCDCEsBRmKGqNWM0MZaJI\npnsU+1o1ltCbSebo4Z0h9Ni7CPmbujlRSRduScJC4BX3pLL2i4GAzFwoVjHL\nv86nXnAGNsZaoBEO51JvFHF01AF3D9GVu5qwdwOUJZKc6o8zL3Ms6O2oeZh9\nWaQQ8X1RBELhWYXFupFEnlK2YeDsl6Rr8vxuRYM/yLQFH/qNS/zwWYDaOGLN\nKVx5o6uZVWMxrq0/v7OVDoS8XA8pDy4OL5izAKoO6wj9Lg/wH2UGk7Nj4e7k\nnp54V98RuE70gTfnoCHeWcKsz9rrdvD/Vv+Q941NjcP6hSxtaQ8jYHLkKec0\n2Ye+uooVYxsEazzLsUmbCbzWnrJbFyeKMxzY8ueK4xTimQK+PojR5nAjenKj\n+MUkHg/lj504uZxXhrmgzEMJEZarWn1edH6hiKGatxQEMMJP0txCM01akMIV\nYtSDhP9zD/ruFhcQNVrSAop9YGx+8TkrUryeEX8en+WGjInlIOCVB+PsnhLx\nao9J2RRbnIIWdJvW9L7tkaepafT72c5E/BSLALFDI9DXSVcTAqwDxUgd+qtX\nTUDt\r\n=o70s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"20a7a169b137d0fa65e7288a3a8db2ee98eec1d8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-20a7a1-knkan7xt_1618576540953_0.8442643130634586","host":"s3://npm-registry-packages"}},"1.3.3-feature-191121-knkf9w5z":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-191121-knkf9w5z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-191121-knkf9w5z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0112c0cb14518f58f5e99c2ddeac75ef6ee6f113","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-191121-knkf9w5z.tgz","fileCount":15,"integrity":"sha512-AgKm9vPL6QzAba91ToMMPNW7xuNPHMuuTOn9GW9qgdFuZ6cKXAU2MCiJJYrobAbk70OfR0qSBJI5ze+polWFyQ==","signatures":[{"sig":"MEYCIQCdPlGmuOtvPPtmtq5yeVcaOQVKockAvH7Swwot8n0XUwIhAIAiNy5/FnyItS9h19igIofpLcb1qgIt6sjlw9iMFV97","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeaL+CRA9TVsSAnZWagAA+ocP/iqw0+OS7tj0mueS9zMc\ndNAwCqWhn7OSl9HFWSG4LGhHsfUQBL13ovEwaHXlAkatccDQaMYY0MYX/W7F\nXGKbYZWsD1pE+iOcAW7el7ZqGqtNGiSZbVfL5KVImBqYGMc5VkTqhSObYfAE\nmzPxyk0XvmhDVeiMtcBFPzT/WeXM5Jbwu1z0e8WelEFZh1gDXLIlgXBDl2Fo\n9KTUqZDJGO07Enpd1H2weW7j8W2gycznnJBOv9odiPg1lVbI8sWT0JhQAUs/\nIRddNEpdk+IiAqKVPCxYCuvWP77601ALScPyhwn6P8ggI1KcFblRNLq6cI27\nzAB1bgzf/3EuqJVxMpqwGLjMTJHAzBVvtdwfn6RIjDfTRzYzv3bt9cIzc4/1\nG46Cq8VBqRmhVXIrbz46YbDz1AeqnKvndFAeH/8WsrFFcNKzEeyd72diTdNd\nabFaBu5BBQJmxcgRV+nsP+G+9LpnvAdAaH4E1cM77KdPGQ8aSExqUuJG0I+2\nfpjBC+hwTNSTpcYauDKGzXH85jYn4A6naB64lr6FatjxJlKCa3Ox0kJpD69A\n8wrv2GtK709uqrGPCmYv+HETyv+LatfC7ApSwD7ew9kqffjY50GBqLTZasS5\n1MShB3aSSk8IUBg7uf5sQKKehqIHhUgWDaDCbK4RvxbGkeWrV6vD5Cz9ulU1\nSmvy\r\n=lwC2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"191121fe1e2c1053c4a71dec9673feb031c3af23","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^1.1.1","@atlas-engine/process_model":"^2.2.2","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-191121-knkf9w5z_1618584317913_0.8251407820107675","host":"s3://npm-registry-packages"}},"1.3.2-hotfix-f64619-knoatwcl":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfix-f64619-knoatwcl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfix-f64619-knoatwcl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4f30359f4ca96138cbb44ee80c67981940717530","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfix-f64619-knoatwcl.tgz","fileCount":15,"integrity":"sha512-gI3VXtYU/XkptmuvlQ2oLXl6xt6gnipixNACf5rh7+RgkdeHnplDl+NUncO3G7fUpFzwonO0w7KQ5TJQAkKnkA==","signatures":[{"sig":"MEUCIQDooNZzG5K9q/EMb1VJrns/qP8Wif0K7kS8MDpFIy09lAIgKzP1zc53tMbyTmj/EfBwy16KMaKGAKP0IVayF3B5xIs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfTacCRA9TVsSAnZWagAALYgP/iHOu8+FZpDKj9rfcyLX\n13+SVjOd0/UzHOj/JgoIq8sh2BaD9oydm1aWoVDHtjaBxEmfa33L/0ofvbHj\nhYMThRYmTCXE099zYPac4DQcgdy6LQWYY8qyaRZUyqCQk2XK8jiQ93OHtiIS\n82Q00e/De1jtf+enlMNqpu6DKgNK7Zb798VB7YWhyLOSn+24q5YlllCyWmTI\nzs6ECp4bfWLi8jaBvGbTA1yOVPxTiQFBK1Xo2WZioo8jlvFJEhwN7jUq2txF\nVVkeOggbYcHs7qkeKpGA3cCuLO52mjLkGlPk/8e+fKasuDKQdOvQk4sI7CcO\n8pDqoIvITlsIgkcC8uyo8+frb7/GXSfX++qGuMarqvYnw1PpnqYvKhGPWbBZ\nGD0UzmciXkhlnkz7WKA8UlBiegooZgYyVEaa00vyTsTn54mzqpyKF85sppa7\nmbCqn1pcxnp5RFvKsTds5xTB+KmZXDWEI5UvkDkzY2P+RJCyCbGXIZhima/S\ntwFFFBeA6sfXE8sFHWhp6l2xMa1DfxJD8ui51fu0VwX4ijomMIrZrDsWaQQS\nBFZU9YNuSIxVMiTHM5cJKGMKI9dg33H8TEBR4ALsRH3NoX3ubQ6QWN8GEyVB\nmvToQTPm8IDzIbhWGBlWQJ5DABXjsa+av9dKFqeUTp5RIMpqM7YylNs/h8WE\nhVN5\r\n=nnEF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f64619606b93ba2e142b46a4831e7a4f1dac7ea1","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfix~fix_error_messages"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfix-f64619-knoatwcl_1618818716214_0.6767346340517375","host":"s3://npm-registry-packages"}},"1.3.2-hotfix-5cc674-knoc07q4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfix-5cc674-knoc07q4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfix-5cc674-knoc07q4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"43390a8b09853d623d74d3853b30aba2f8d4716a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfix-5cc674-knoc07q4.tgz","fileCount":15,"integrity":"sha512-9PNFlmr8FeTmMnXLqyoaRrz+qwA6mNd9c+wuP36GjNHdxA7lM12w9rWuRvI83lBzOJ1UsrdWEfbqXIiSe1DfNw==","signatures":[{"sig":"MEUCIHTEWOZoUgpYxRL7sgsShsK7+ceVXKHtzBQd+C/5SrTmAiEAnZhgugTmiHZNrxaNimJ6mqVjdrY8gtxM9ajvkL1dtzU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfT5UCRA9TVsSAnZWagAANMoP+wZTO2AnmwngdTe8DhPx\nA0Ksk/5/uU+qexjiV/71iCzYDOOz9FibeYDZgFeihUIbQtsXdWDcISIUlF8I\nG+BqtS8ykA2S560tJle4rq/hxXWOLVRf+rnnfu1okfc5oWvd/Zxni5RqiweI\nkfb3IoS+sjHX4iDwTpKLeat3liNyxS8zctltQ5uX1A2grJW1KKJ8LWZhvpoZ\neKNzHYWf3fxgFEYr2+OftUX30kh8ZAJp/AUJHf1L7/2HqF26x6EK6qZortkA\nijLEWYeMnDFGc2DJRKwbgy4vRjh4ss5RSUblQpJLVSY1hsGidZDmOdpgI5NI\nVst36fPK0fOzb3P/V2IL6+kKpYBCVi/LGs0MwFynpDhJObStrjouFpykBRIZ\n/8xIrAY3TrpGVniP4IQZRnwIU3Q3BFB9SFs3m8qwzPahJgOKAe30ZN7wXh/G\nY6frlEtVqETh8jm2fbGLm1H/rfasd3ydSGGUzk8lQ67H+QDnfcIb3O/yqrYC\n2MIJjfQgwbm1EO6kMDxZ2sR15unnmltEbqxbZznbNZFAOYsPI7Z5fW5X3+Cb\nahz0sbO7KQBFxiQT9dbkGNLodrAg64YrbkJV0XIXquj2WgM7RSF1ie2ezjew\ngSMA3CbvSC9opJkMWiTaMGpgkApp9OsxDrwMkSEZeX7/DGYWBgnUaXLcOj+P\nZxUS\r\n=tJL9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5cc6745f475f3f59c1da8c57b882ae5f0b5b8eb5","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfix-5cc674-knoc07q4_1618820692527_0.756424226189097","host":"s3://npm-registry-packages"}},"1.3.2-hotfixes-8feef3-knoccdqy":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfixes-8feef3-knoccdqy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfixes-8feef3-knoccdqy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0dab856250f11f05f7bc1a628cbbb904edc5953a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfixes-8feef3-knoccdqy.tgz","fileCount":15,"integrity":"sha512-WbaBiPNjd0xozEbp6drStqy9vfSOQxDrMPfu+KXsVQPjjpBQV/R/HnnGKTdfnFUejtoiFjTudr104BMjnVYn+g==","signatures":[{"sig":"MEYCIQCp0TWB1emWdgdJLLaPSNAYKxBL+C0yzVPRyJyU5wnnNwIhAMgIR4pMRXIwT5dHkcJ0jSTKR66o83r3Dp2PN1g/AASP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfUCECRA9TVsSAnZWagAAw94P/RR5QoJC9Q1DMxRBX0jY\nOIbBMDT2waTR3teXOnH/U3O9CpZLs+Agi0sF6SAK6+KMDNPB5RVca90T0SSy\nNwczgdJIFL8Gb1bdNkeDx8bz8RMoYMMBFUfnd8R4fFKPzMbBF+lQMYoOUzKU\nPXFL7UJjdo9RWroy5gOYYNER9HgWWWWOctD8claL7FJHQciV/nqQ5t8F8wPg\n6Y5bczo9h7fMOnfE+33TLAHBL/j6iLK1iVUD/ycgN7/t8BHwi+XW7YoCXRQF\n2DCQt9PMdK3JSKxZOYCr4dIOdRbFTaFeXC47GuU2qaj+GGqaNWqN+GMykqFR\nLkoG2aKXTbWXFl2nqueJjMNggBgmbZ4YW0Zw5CCnhmdQaSA9IFMIAi4ZT0AF\nli+uikrcC4nCzefmKJxHaUk5hhUpvzBQ88lQpLuhzjf8eEcVNLaXBvlcmegt\nsAotNPDdLQXAB548WUB1L5jJShwpEZjlDgMGE6ncRlzcOKjvdZ57JosECypM\nJCmtJmuablDSlBclY9U29aaCbEBCBHd7lQZc3yC3B2gVB8GSi9LOp1THU8qb\n3HI2T74q6sWR96KRlHe0jXbpa2ouPg0DqHoMJU0DihhQlRUYdwQxNE0d6FOV\nwkxz5kRBQ6wgS/JykmEhfc6fJE+cMSs3ZuncRLmavBrzXRq4GvtSfha3J9OH\nPLl7\r\n=uUtD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8feef336126817d085a4b9ecbf8b7d15668c8c1e","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"1.1.1","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfixes-8feef3-knoccdqy_1618821251916_0.42335181279511946","host":"s3://npm-registry-packages"}},"1.3.2-hotfix-a81ee7-knopqlo0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfix-a81ee7-knopqlo0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfix-a81ee7-knopqlo0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0faf5de36f89e2c5bacb907398767518817764cc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfix-a81ee7-knopqlo0.tgz","fileCount":15,"integrity":"sha512-/Zo/4WZLjztGuXZUBZbzMOPFwi4q2q3zIPxg796mJd4CbPuE1DNoJ0y4vifq/dI6J7RtitRi70Tj+f/PJmFNmg==","signatures":[{"sig":"MEUCIQDWCVpADiK5Tj6zdaYbtDs64NApsaS3i2sJrCqz9z02NAIgQFmWF8VQfaKPXB9E6qVfzQ7OdMemoAgeCqz5ybO7dfw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfZhrCRA9TVsSAnZWagAAi14P/0pmqZzBMTOqlJC9YmIV\nJDZmWvZZDCVc1VeAgXBPNJ3D9/NUAi4yFvTkDxMdJKjdUx7T3ltb6owqNrj/\ncS+s3FLAfozLvUMvKYDb4qudY6TPAyhEWlYUQSjARF59lGlPrCqy1Kqw5pj9\najbsBJuP6jJEiaanGxh5zKtJC/+eRqTlCqzEzCE2qFwOGzPKadOqwkgdz3xS\neezW8ofPZf41eBdx4HYqTJLmZn1BHwo/SEURsd/DBfGiH8XGnT4g0iY/08n6\nOC6IBM2m983yQ0fdLAM7yaNvDlwl0nSgKkbkO3Lt6BSyPoPQdNEYdUmuPliF\npC65QyvPR+nnIIJpOtvjsMPJFFxOU9lyUxdnDI4yZsE5a3MVECYwr6UaicYZ\nnCYoP1h1PcbID31504xK95jQ2Xyu6k9cabJLUaEQszs0Lxeq5lhL8kZlF6cH\nbieIa+SLHBnrsttTlqU7mQw83qLPCwdZb9LRjhhABsORe45V5PWQnr1B1SPC\n9WtqaTlJR7u794h9+O3go+OzGeP5enx1FpbaUKV5gjEEBQOfkmzAM0dkf/NG\ncHc2Anfeyi6x+rZ7hi9lO98B2XmGi30DoD7V++v0t9pkav9BD4hbhWnXlqX6\ni07XRyvNWE/K95Gk1VkT0zTa5UXLsgxo/OV58CfmYFz/te7xQmsUOyuiY2gQ\nHZEk\r\n=PI9i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a81ee7c5d7d98811f943f8138462a562d054c428","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfix-a81ee7-knopqlo0_1618843755133_0.6156381193712976","host":"s3://npm-registry-packages"}},"1.3.2-hotfixes-6a0ade-knopy46v":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.2-hotfixes-6a0ade-knopy46v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.2-hotfixes-6a0ade-knopy46v","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"edcd31cdc59ac8f459330c3c66e25e96724208f4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.2-hotfixes-6a0ade-knopy46v.tgz","fileCount":15,"integrity":"sha512-RXZ4VNqd8JahxrempF3WV7S5AgQV1iEno6NS4gI8zJxX0Auy6OcWekVhlLkZYEpzJR346/BT0nOyRvjpiWR3Aw==","signatures":[{"sig":"MEUCIQCwCnFYwDMIMSO10NsNO7MIzMbpuNXoY39eBqmyszU/yQIgJ/IN/a7/h3LPKgDF58GxZaaBVZqOHkcPFgoWldQOtas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfZnQCRA9TVsSAnZWagAANmEP/2NCttRkf8O1kKulNvHd\nwnSIXtWc5JnujyklIbtSCCg+pQwy7EXE0ngp58ueyXTCRoWkhYYqdYGVkBTq\noxpUpqKGTt07RsPnFs2iNZ/L9ofpZWfb1gTJwsgvWwifasw1jjOrZfAAi05x\nUUOutNQAayj7rCY7bpg31U+617RK/m/6UHOytbLM9B828pGWOtV7ZkkpkPfR\nu45odouISkn9rv+0lH5N1jzxwhN16fCbDTwoNThalQGK0V0cAbYFma6eyz59\nM1amh35e7S3VZe4OzI9PXsem/QCeejsvLT7VJH0jHSRy/mFLGvE9WRaw5XY8\nzKSXnLA/jX1tzeike4aXVNEFqosatMUbNTcL3UzYrSzT8UGxkfOP/Ro6bKIq\n73pUZHhofg3LJWSALpWYmg4zTFtloJEoNmLIUE+t5dnkP+tHLGD1B+IlP06O\nEosaDVtuf1QIENKmmv2pEQ2xXwRG+y5xXUk1AEl6fUiYVEzzIZ0wSen8iumf\nxX6xlosvdr5LczY/VFEnQT+ZzA/3EV2vjdZ//ftZKkgkwWLnik7rCZ4wgU6E\nLU5HPIkEo4b7blKplEIbe5QF1mx/ZC+F8x/V/zCyDFSKF8g2UzvVG77hEjiN\nwz1odNkB+jt1bK3tl8ZZDCntzUs4IijruyXsW9YM/YpytL0cu3Rm+Qaxiww5\ntDgG\r\n=bqGd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6a0ade89f677ad156f234fc43b03c95ed3c43d81","scripts":{"lint":"eslint src/**/*.ts src/*.ts test/*.ts","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix src/**/*.ts src/*.ts test/*.ts","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^6.8.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^1.0.5","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.2-hotfixes-6a0ade-knopy46v_1618844112397_0.9042845968244635","host":"s3://npm-registry-packages"}},"1.3.3-feature-d6faaa-knouwmgi":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-d6faaa-knouwmgi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-d6faaa-knouwmgi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3fd3f8adaf289b1355d4012944a75eddb04a194c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-d6faaa-knouwmgi.tgz","fileCount":15,"integrity":"sha512-2fe1wu345X//sjKIrva3qDYYSxEdaOCWB/H5u+JC9EpjR3duwsgCZmZWOhACc7ELM5cMNDtujFYlto2ha9G8Mw==","signatures":[{"sig":"MEYCIQDMpJHPW0K+DoxV/e27l2RdD06Qwma7E3RVFbuEgO8YNwIhAIeSkUGrl/Vwzl++n15prRe1CQfY3tNq8/4GwR2oGtfA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfbpYCRA9TVsSAnZWagAARYIP/3oWRON2j9SjkfXdr2WP\nkpL7xgl/UiyzNwng00jCQIi9xMwYFqg6SuEd/Bgjc7SiaFLKO4ubOqcxKp1k\nulbmcJpPmOo6aoBDmYhF5ZWVdEDivq7WTCoB0Af7GqcdIcyMLrU4vfq8j2sR\nrbgb3pHX2+M+vPmsganoDdxnOre2iflQuVsdPVDTyCgsw2HQRCGdE0cIlZbY\nyMs1qR8mF7YaGD1rmxXD6fv3DSuU+Mc5vS911tAWprW0Qzu+bu5DTlOiAvEP\nc0MQcpNKluo2qBbTo14PX3acnYYZtmaxWBMhPeJGuJuPjSU1DevICc47/sAN\ndxciueKvp95P0hOynFm6U+XM9XmwfngYBggt1IsAXOKGmQBfZG+jWFjuCh1i\ns0BTwlr4ptDzjcNffU6aDWiG/E34WGLJJJoEDr+9SqJIFnhaqYW0GilgeRW1\nHMWGvEAHEbshicQ88zA/lYzIBnPpklKJDrIIaAjPW6OD2K/IwxKQUNip4a41\nN81fntJoykvkseur1v16Cp+vdfJ7313Aq2vNYsaVBSMSY/NpyZ4SV2GCo7Ty\ncoLN/QjN08ZQE/fSWyAu9iUSpQpTWLkC4HtupPt4ZAI12Oq+nxyDxSJKAUkK\nKgrWuFtACbV2ZRewmSvMYOuuzwgVa0nV/KL7w8uJ/HSKkBtf1RAqVyFkTVB5\ni1Hr\r\n=tNR3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d6faaaefa487cc53ea081c993d4822deed1a6d56","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"feature~sort_queries"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-d6faaa-knouwmgi_1618852440465_0.5465841229745068","host":"s3://npm-registry-packages"}},"1.3.3-feature-79e6de-knq337n0":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-79e6de-knq337n0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-79e6de-knq337n0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"88d9d49ba0af99b476df1d45d55207319cac068f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-79e6de-knq337n0.tgz","fileCount":15,"integrity":"sha512-0S9Aby0bkRioCNh2I2R6Sz4sXKalYYhy3bcZNV4KhDoFUZLPZ60dykU4tc2121VZLOmFb3DbrTgWYubJAMwdkA==","signatures":[{"sig":"MEYCIQCIBEOB4txduw+tfo7alFd+4CtSLFIX94bXUB7AhxuOCgIhAP79HGMjBToKwafxgwCZA/n/WpaKeHQBw6CDC0SVd6jp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgftwpCRA9TVsSAnZWagAA3EYP/3NgC8oz6Ctg1bXQcol0\nv7zY6D+oNRoSN4bxfuPSox7+d6zl0HqCmq3HkwEwK+pQwxMh/EJKi6bVb0FZ\n5ZDd8IS1Xr6sP2TJsvgi/FCEsKcTKDg6QkPr4gfUpsDR9/OcJf+sj8aPhWpv\n2osUCPRjNO9IwdKGrA3TnKK8Uy2I+GsiwiQhgr2xb9d45JdfbxPQdCOq6asH\noTb1bL5R0XYE9A13elJI6tgwuDBV8dyyNOaVF3VdXFYHnXCvpGX7zSJiCGrF\nUTrMHnUahnQuv+bwh7nY6iDd6som2/zGBIaAQOEOCPab8lCI4imNwrQiQa7v\n+bBXqmSRJWzrsnMJtZ79CGaK7bB2L5qzP/WlninZ41IUrUjzHktdYu1bO2lA\nXB9oZiBAde100g6Y8WpqQtVkZISgjLkPdYY8KUDlTTKnmaLP1cqxghOKr+gG\n1ZGTErK+ksuBRmxvFURD/ErBnU+6uT0Nz94iF7wf4lgDxLiJyDfcJePCb8Z9\ngUWzfpeD+niUcOb+S5jNR/LLbs/Ae86YXCfF/+XysBlFL/NSXXcKKMh9dZpY\nMk5EZNuJhL7fLUluyxvBjR3byCxlH5QoFXuZIS4ypUYw0twDBBqsEwy2zghK\njIiBavFYlKMFsJqF+AFQsVXV2JwEZLB9u7oh9El0mvUfshXAhwgM0jNHs1x/\nhuzg\r\n=FJTu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"79e6de38afac81d5852e78a374d9fee5499842c8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-79e6de-knq337n0_1618926633307_0.17429778268472718","host":"s3://npm-registry-packages"}},"1.3.3-hotfixes-2ec0fa-knq37ah3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-hotfixes-2ec0fa-knq37ah3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-hotfixes-2ec0fa-knq37ah3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8ccf1d04925af3f53a4936c48c57aecf20ddea38","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-hotfixes-2ec0fa-knq37ah3.tgz","fileCount":15,"integrity":"sha512-14o7pgqjNsZCBZpi3bgo+XXu8c37nAlZ4aRc3wtLFoLKa8+sErBItvXfPN4GMpxMcMxe/Y8WGQgA9cnMnCX2gg==","signatures":[{"sig":"MEQCIHMnNGOEU4n8hU4VAC9sOydSySOkWMRWPkXCn3Ex2Rg1AiAA2Lfjwn+guOJQ7duhIYPGlkO1/ACa72eiW9RgHoYEYg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490484,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgftzuCRA9TVsSAnZWagAANHMP+wap5uMw33ZgxReY4rfp\nivwCK7ilDQqw/Z0YfexNACwiJ6mto/8IlRTcrirs1WPcUK/4SXH4lak3ODnF\nqRU1TWlQrPbl9JDYiIF8n4HWbeY/Z8H+AwNbKnAiwyc2uKxFQjHwmnRvNl0d\ny0t1XRlvZkKuIUr0Sc9tENisqA6HOKtIfBDX/Smtw7M9d9pPyme4x55XeHnm\nY2HrPycZoSbjvz4Am/yH2DW/20QsVQkXo4SGpQeOnFh09hvKInunf4KXgAco\nGQvL1VqWvHAmRowjTse6lSgFR/pS1hsXw7cCLQb3qaquYz33yZNN7pp5l8mL\nQ9mpJYwTf41kvYufDdk9x1TLVH8tBaoEleTsjJlC+3pz2Pm6T4nsSADQcMVQ\nI/oUAwVXp5hsWApGoXbl2tn6v0kcn1ocbNLp2lh5NIQcnSpzgGuPB0CeAsCV\nhlQyDLd68HtsNNfa2Ukq8E4/KVmY63nJ7caSqG+n4wLeB6wg11pf2F2yrPmL\nkbT6UI9On3dhHpDLgqFUs3rr2nC+1bZCr3lLZR9xfP/ppbo8ZZeQ7qlvnbA4\nke90xl9/9UH0eBDiwdI7+NuVHMOpu+2iBQBttMCKnQojIRtH8XnUOlaXJMEv\nlbjvcvWG48GYtIL5xdlERedmlHpHH5xHhrUtJ44NqAO6hsm8ok63GZtDkA7t\nl26e\r\n=9/2D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2ec0fa5093675960d8815afd70be6217bf9ba998","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-hotfixes-2ec0fa-knq37ah3_1618926830243_0.02572278000717909","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9c6ba7fc650b007e6f57799d2721a6a3647e4054","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3.tgz","fileCount":15,"integrity":"sha512-BRM6I4v8RACUtvoziSOTCV50LNwlB8YidkRrDXl9wkCW7TxOhp3yaANRN/lswV58chdGTDLe6pXRVNj/ds6Wvg==","signatures":[{"sig":"MEUCIQD6Yw6EV9T0zBP1RPI5VFcgqdAGEG7KGn07iwzCOtzZMAIgfbOz/TMAYLUL4Zxgvzi9lBKPDBehS2hyfHwl7UabQ74=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfyfaCRA9TVsSAnZWagAAiFQQAJgskMAKCV+aksBnnlT/\nAvUC58sb11/3hEkyAkpu+EBxuEZRWI1/tDI98HAa3F4nnyKc6moh2C6nMfV8\nEc+iHKk1E13KJw4Q7zpyAGOpaECMTUUkJW+W0/O6Hfcdhj9ACaT8nlEqN0ue\n0Z9Mi0GjIuUGVVUK/ta4iZdISIJtSnmedBqaTKRAqBnRQ1GQcqaAdYmWRivO\n3gOzAbK+bOkF7Ds8x9GKNyi+rRdyx+OcmHoa2PAySQBh4oeKoMVPBTUsL8LN\n9RLfw9o+qE7zGCUA1EW4PGA3ymMIlja1Yk4r02d6fM78rwnihSRQ5bKl6HJc\nPiYwhViRP5F9zvYgKqYQD9rnL1OJO/7IuH2Lgg6jA2Oo04mbqY1itLGpfDpi\ntv3dZ0oY1Uku6BF3PUxRVVEDwdgQ+LuvBPi5t215+5pD68OkpyuqxyRNe4A6\nKzAwITvpBcr1dyYk7lTpHOR27Uf40XUjkypYZQN0yw2u9eL4Fq/A+4RdhatE\ntiJMjFWYxdKyvqe/VQJc8yMliTAaZgjIjkf3yUpSLgWGOCbGHPCIeiy7jD81\nBATBE/iZwqL13OvaiHg4WBUCc62n3any1z+L2FYrVzwD6WIvP8704Qhtlorc\nCAGLApltIPOcCJJZd6GfTrjW6DFQnH88YoPENpgfYeIz5eC9bgR1HIbMgI0N\nCXzK\r\n=umoq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"994e534fb536b0f1fbd2db027640c466b35f1fde","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"1.4.3"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3_1618946009807_0.16896823780284853","host":"s3://npm-registry-packages"}},"1.3.3-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a991f9b8115776771bd25c4fb81270cd965f3747","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-alpha.1.tgz","fileCount":15,"integrity":"sha512-8xs49V4nQCpEccuUVnE2DHPk/MqmhfFRcgkBLnHIbp4ECvx+iENy7U7AEA4FwEONVzRDauMadIRapFK4iw0H5A==","signatures":[{"sig":"MEUCIQC3O3C2iRyC+Oa7VcP9c2hAfDUvvK6LALJxQmCdAHER9wIgKjKzSA7xHp9zXxrhQI+r26s18GqKp+wwQs4x/Mg32JQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfyjJCRA9TVsSAnZWagAAjzIP/2DFn8RHKJObWgcaAafD\n9YprMdPdTkbfsb/5R4DpMriwCnPNOH1hhlmdKx6ePE1sMKanUCf6YUr2hjX0\naj9Tk2SIEhfLfL5lLPuecVQ5UuajZAkL0N6Fxzz3Bi/GChCtTvDaKBAmI3Cy\nfu51Z/29sdfKvRPu0YLjNwAYKSr04Ymm+jSpwzVIuDwlqZHN4N9wVp9zhYLY\nVWo8r9FSbosrNkc6Om6Wr4+vhcAAckBEfjTSHlB15zrIunE7wq3Ck7wWZ3OW\nyb/jOowJXVnJ6y/21c56vsqDPG2eGK3Ry17Je9D6qsxBtlpS2OUafaSj1xbl\nvf9Ljjm6rG7bf8k0I/McYoidU9hx3xU58D95hfII2X0ndMt+Q8gc5aakYmtF\nUxlCJLEVDeEIcyWRNl/DzM7tsWqK0+8vbKufLJYt5aSMdF+2DWExb/cWhrUK\nhenSU8XGwLfdOx8xbKF0S1tyFNM7FXktIkGMIgyWSeHtqBydG8LehgL3mvly\nIgtZ5gx0rbpOI0I9rf6wZ0PNszHpCFjqZFqEBxuBu5GIr/GctS9czxkggat9\nJBoZXK0354BWIlIAj4nEBLpuVlsWCzSSAZ9/sYLE1miN6A2GNVlkW7Yi90zd\nUs/07cZ4gUnH5os7uv5gX4ZbLH7G2ZbCkX1Md5T1PccPfVHtQACkMIYHKUhM\nwcQq\r\n=aA+w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ed2cb44c73e059ce595267204e255be7f56edf07","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"1.4.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-alpha.1_1618946248898_0.08824487691384153","host":"s3://npm-registry-packages"}},"1.3.3-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"12f29dd63cdd0cf2576d72e9984d9d7a93dc82f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-beta.1.tgz","fileCount":15,"integrity":"sha512-1hQZh9ifg1XUoLh5futfIJPKKIep+AIllraj3gblSDBmm81YnlkOEOCRup26yrN/9JnY4bP8IVr8tbk11ZCi5A==","signatures":[{"sig":"MEYCIQDBH47q41EWkF6lvvJdp0frvAgn8Q8bd7+XS4yLSubm5wIhANV5sKl22/bAKlEdrGuvDM/EYYMXZE7DxFqb2ncbFUIP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfyjXCRA9TVsSAnZWagAAqD4P/Rcqa9iIy3frf2oHzbzX\nFSoG96tlFWRE+iFxrhAHxY5eTwwhM7DWpampbAeNMN1jnXHGYQLEu8nBH5Ki\npPQYCdqevkxkEnfHLAdfpIlqIS3W6Z9ZCbfxY/UCijD85yDlPC9FV+m+N3Hv\ndmSLarEy3A8bwxJtz2iVprk4kNiNuWdRDhBJKb4zlcAac8oXpwN894a0JZOV\nw3YiG3Run3gMmdl4G3JudcGMGf0mrscRCw05UTeEYkUj08dv++1cH8MGNiXu\n0bONutbvgXjtdF9a7LIlmSGe124JgsntE3mqvE0YbJL1xHPXGjr2ocShPaUh\n7OE7GAu+1f3cwUJP64VrHS8TJiB6eyXMFXnCw66awUM9thUYddIOfjtoZ1h0\n/NNQLJhj2/3jafU7a8Q4CAB7tLVnDhEWMKPNBdrVM+iffW5VfM9KNoz8zxRI\nGk22o4orJFdlngak4H93q1FlHL0TghxEQOFQi6NYntO4kPz1HcucQlXmgcuL\nzkOC/HgRaCeIE65Of0dtv//DwQio9WcgNY2f0c65ZhtWEpCdrUcgJ6Pbr1lo\nGmuc3FZ2Di0OdAWkyQjJfXQzjVV/tl7L6N5i2MGrOsKQmEoCGu8lqx+EmF78\nSOQQHufbkzMvIt8nAOeeXMhvmdCznpKrRalWY3L6PtaQEl1LAMv/YsTY1TaV\nnQf6\r\n=xlIp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a73e39ee44e18aab3891e5a819f67513a978bee8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"1.4.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-beta.1_1618946263272_0.8947686317063104","host":"s3://npm-registry-packages"}},"1.3.3-feature-bc9a86-knr8fey1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-bc9a86-knr8fey1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-bc9a86-knr8fey1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"abd4ec44e1123b274361dca5674ad8a19025b538","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-bc9a86-knr8fey1.tgz","fileCount":15,"integrity":"sha512-Sr9RVGpOV97L7RpbFxekIQ1W1D2oEtEA9Btq/Ve4oeHxi2ymyN9GH7f4zZ7jHMrxD5Iw5qq1Gjylbg973HJhWw==","signatures":[{"sig":"MEYCIQDaC2CM3DQRQAsEejSPNcYqfDH04hAwE7thefdjukVQBgIhAIDbE7EtuNrGMnjFF12PNKZ7D+zICcrYFIAT/O7Lyyuy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgf+tvCRA9TVsSAnZWagAA+WoQAJ0w5hmfL2CcoJcuAL4H\nofEUf+GV3OYr0Gjc0NNYBMHErQDx8przxoUInE3lCr17IyqhMtU/k37b+cPa\n5nMBHJBN4gFbFwAhnAx0g9lB0U2DMAYW+hpDYVpg5HFKVAvEY6qw8YpsbwEc\nmsLEKr9aXCdX3Gv1+MHnt4PLbV/mcDRDRhcGUxF8iHv9vmYgqb6olJeAdafg\n1ITDZa/44rb/5xlAYqqiyLY13ZPL4isfGI9cgbbm2xigf1sZzGJe59U5qKo5\nDmSQykK654mjwHBF+w78DGzbewbnzgidJgjZ9/0HLmnjPTO5mfd74ICJDbbF\nii+g24e0OdEl4wSryTPd1NTL4zUs4C5+303ew+LZhny+FM4REfcNm/sTIDvz\nMrMAuUqztzqX+AxnX+aszjpcPsC6tuvJd7x8U0SswNLv1dZ/N/95i8pA8+gd\np4nvaHgTnEvVWnexo7anbXeiIx/boDGdbGicC+gQ/PNnUE3TKh7RmTmIMDwa\nsDg7LTqQpmlfr6pSufuuq4TnMa8kIRjjJwDbgkYX6Ei0xem7w2VwxRObYyAb\n/VHK1CRcKk5cLx/bqu8tJPF4sGcvV+77qsl/WxUP7eGzaBZe1Biq+NQDimlo\n3HpDgk+VlzvxOL17yBH8WWTwm/3DbeuqHyDKnuJIDzOV2d4Rk5eWgAXPJ/A1\n4/vr\r\n=2WxD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc9a865d5eb84f301905f3db89d8956e35ecead2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"feature~improve_decorate_performance"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-bc9a86-knr8fey1_1618996078968_0.49676995612918473","host":"s3://npm-registry-packages"}},"1.3.3-feature-9014a1-knydeohi":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-9014a1-knydeohi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-9014a1-knydeohi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0ac3c7235ee08cf0813944c3991ac5c5a546fb2d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-9014a1-knydeohi.tgz","fileCount":15,"integrity":"sha512-filaTG0GxoNtDWWKEmdUXrBQlrS/yxLuS8lzB7A7zAz1xTAGD2TitSfAtPb+1/pSP/Nl/ZwfN3c+x9SloDw0aA==","signatures":[{"sig":"MEUCIH2qNn1txCtHjyMmIFo7yHg/LSv5Fl1/Dy9U7O1v82l7AiEArXdyHeSuGxVGrdkk538i5wFxI+Wa+Cie29eHqtvT1b8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghoF3CRA9TVsSAnZWagAAQScP/R5INS7OeNpKBy7NmxGp\n+THMMfUma3Nbd43k42z0FdMokPajt1hXJQcpTVsYHP1J5oKMmRfJ9fO6UTNs\nOh7D48zFGllo08TQbLlIo+/rhQXjTq0vg6eLkBJ7Th4J6F4JmRgbakdZbiUE\nPOdVYa1FvCK+1Z+9BY9QW3XIG87fv2vkXACB2aOzkiRIFvig/LPAW4bvkEBN\nftcpqJavYAGmuAOG5tkP7a9dlHbJz4/Wt2NEtFDTakU8qemUl7lKjBeTFZ2N\nW/kpmlRjPxR7L1SnJ5kt3tzF2CA6iJCIFK7ESoKnfyhTwbode6CrlENKjUaK\nqgVyJI9tyRQAU7mPWX9sQbbF42NvDn7zXmEuN36+nQ183EO0gHMgansJ7WPs\nY/QQAmV6+rkvDJas5wmEygdpD5pECPWw7S0G0VQSMnivY81zdROU4JadrRMX\nIeXl3tZ4gpBrCuWXg4mVcf1Fm3yj8wgyuCv9cOJKKutEjI5ziAE44Astb0tt\nFI7oJ2zIaFLZdHfUTPLAVEVFtK0likH3fIGyQEj98GsKBU/JH0vyr0idnlmF\nOqaWI5cm3n/oHaAbyJpiFfN3HONwJ4azp/bt8f9unpL2Zd2Y26yrrIDGEcG8\ntz7/EU5Nb/CU0D+HXwjQsREP9tJBMo4Zk71u4n/pt2xo8RcsOCkrhQXer+J6\nPCL+\r\n=C30e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9014a1098ff3c25fa6ded1d3050fcf44e18640fe","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"feature~improve_decorate_performance"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-9014a1-knydeohi_1619427703414_0.82146473319003","host":"s3://npm-registry-packages"}},"1.3.3-feature-95813d-knyg5ikv":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-feature-95813d-knyg5ikv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-feature-95813d-knyg5ikv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d3038b05a6d9cee592bb0f051bbf453933ca8d5f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-feature-95813d-knyg5ikv.tgz","fileCount":15,"integrity":"sha512-b8RjAXvrAjijlkrNwlbOOgu3IUPqWBdyRr4P8321Y1yI1QDYhf8hKdzm8DHAy1IPIKu+9JiJIK3Bl7Wp4unRzA==","signatures":[{"sig":"MEUCIQCg0s892Y7m9s1wAUCtfKG0WA/eXNlLy8o4wryJDIiFXgIgGVtTR4UFqdWPURH0kV+2VF2p7X768ZxUIHWelySzeP4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghpOACRA9TVsSAnZWagAAe2YP+wfGRQDpd5SPRGWMp7do\nkD00y+noayNRZgNLmN9M0lXoQOQGj6f/eqgY7NpciD0n+ar0gIbb0f7XIncf\nVheql6h75FCcS+Sl17JXUZjafGXy/S/E9fZg9BPwta7ynSe6QL/4TtC3STvZ\nicru9RXFsocFfe9mnwtyfktIM4MRhdYfjE62AkHKVvyqBRBIEBxI9f6cDVGk\nVV2pvw3cQ1QzhwapQ+uwT5zCcz17CcaFWDm7n8tyrELPf9k1AXpTzaGGcdV7\nAOGrDEqywziGPbI68JjJNFUDRbPvHDFfT8S17JuLLDWDgW++B8IEa4dKzyxc\nkcNkswc1QmClMgRlFYScWh0mUq9g43box3QVOnKlaAqNT7ouW44uxYq1Y9xe\nbr/1lWEh6eZoaIXqJQYmSf7fgLsIt2+QARxnfCPc8DvNKOZyZCBV/Jn/ug/C\nDX8h3J517SOO+5dBa5aNVB4EgE72X6jtpAzwPQyea2hLLYkWEefSr4qmTu2V\nwq1rbVyjRaYrSxi1Ho8XRpCdfBZQhWqhIX19dFxsnX8kUmyhgK8YSmOAwlrb\nxj3m8Lh/OZ0ke8gSVdlCPlnH4mFkaeqXZ2hxb9+fAhN+5O6Y3DLJb2eu1EDp\ndMEh2gMmnH7ifFete7t+O6mF5rp5js7y3AicA9xgnVgT1sThrM/rqZYcjFRu\nzx9D\r\n=D+kt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"95813d836f8f3656e35ce8ee73259079fe90a915","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-feature-95813d-knyg5ikv_1619432320202_0.5623397608247243","host":"s3://npm-registry-packages"}},"1.3.3-hotfixes-e8472f-knyggvlg":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.3-hotfixes-e8472f-knyggvlg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.3-hotfixes-e8472f-knyggvlg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"29c88f042f528103bde07d5b9dce6d90130d92a4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.3-hotfixes-e8472f-knyggvlg.tgz","fileCount":15,"integrity":"sha512-8/LQw2M6Ihf9gP2qdOkcUtROmjjFSoLAvFpF+m4mP61RPE27vmNuIlUYZmZ4sHg+u3IvmpikFO2Ta/K6ECuwBA==","signatures":[{"sig":"MEQCIHL3EG3VDT4sL9FESxsbEydsH4N7wqKCu0OJRF5M7+xiAiAHlsDUm2FpM7gpA0mD4Gr41pHBLh6Rck20EXWZqIaKRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghpWJCRA9TVsSAnZWagAA3HQQAI5bRTfkgilWLL98QvfB\nJKbVmy8V/NebTT71JL0bthbmITE3N6OBb3OfpkXPrd5QtPL03ULlrDDo0UoY\nDFy2lWrpp+GK6awytjPO037y1Cp2U3TRGdXVFN/cRGLyR2cGpUiCK1TkUMml\nNDnsIoiZJJbEPvE0TlNn7YAeDyk9K7LCRBSzMT+jHss+r7F2EXH4A9Esa7tr\nYznq9nz8INcuQr7Ry0l17k8L5JRaxhROr/Ut61aqzTfH13Urf+Xlk/Rx8y0T\ntx4Gmy9y5DoI+5thZ1r7PIFfbPsn+nUelfOnMQZtbNjvU2ajdWs1JAD+rXQC\nzN3+F/03QG0PL4qSgq2kYpDGsyFQj7bxY9bLW0vH+H//srjW8CSRxOoorRlg\nB+YPRcqLjoMCcWDgHzznbg3KLSAxenljAy8bNru+rDxqKCES9Ts2yBYW8Adt\n7VUEJAnhNddaHk2maV8R1C+khND8NHT7qbN9dnzUM7BcTv1jx8ivhHWK3SP+\nwhR60XmzExIl42Ba4jiAGVG2gGio3Zjk4+BKfJIK5uLfvNdZL8fkPylE0rFb\nQD9zYXSNWUUvV2LKfRVAACvCm2qEdgvX8xopLTCqnV6/pJpQwe8a94eiJ/UY\nqwltIb1Oz6iNWQwGNNe+dK0Msh8qcH9nrWKaS/PuJf7d7e2Lqmb5Fom8rMdX\njung\r\n=1b8U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e8472fe0ec173d22360311f5685c12ce11e437ad","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"11.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.3-hotfixes-e8472f-knyggvlg_1619432841305_0.20594734510016832","host":"s3://npm-registry-packages"}},"1.3.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0f17051a943312fb5d92767885f9db5b4a712f80","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.4.tgz","fileCount":15,"integrity":"sha512-LSsCVPGhFC6puHiPFRdjBf0Vo1hSDfF/kPA4Xm3KnsdUW5lFqiHMecNOXd4hsGDLfMCMssPHrUdUy236HKBaGA==","signatures":[{"sig":"MEQCIEvUXIVxEcGIU50h091C/SL7uh177soG7fFeMs/luLSOAiAlkdGQ75fgHVopwJ2Y08RMy/s9f67kytqbosMjy8jmkg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgi7HRCRA9TVsSAnZWagAAlrwQAItZ157x7cS1KGSOS5X2\ns77UWsxjxPTpceoiCrDe8EnyInvggdfseFIxukr8aj6OUtUy9Z4PelmUh3oM\nm2k/V+HOalOHVtxUrAEbr8a1aECKxZihbBw+WXXF0g+lUVDmQteYSY4EJJqq\nw+KOea5HbtE4OJai7eseXSLiV4Iw3Dz90Q2f9mc3zswtm4EekPEsCtYSFKUi\ngHeKYvwS++lU3qjHkWtJoCWh5ktYleL2ebS+1UhpDfsIWAhA7NcOe9xL8sG5\nFQT9QgayD1alsMzQk+ib6p8xF21J8BoKSUSl2NoFisoin6BLdHLexpGT6su2\n1sPQ0To7LmwGKq1t8v7HHuFGffCU1fls7cqQWX1KPyt24HvN0ctaQ4XZeReW\nbCViGL+6c/8taGfTi7nJhzrAu2aVr25sxFqz8Xrmj6Wbbnfqcn2nsiqLPHGq\n04gS974isdG9yUyUefsPdauQgIoQ0RAYKZlYawNIy5SDmX9sS6B4CJaZpzyt\na9oLVUmHOYwDeS4BjR6Va2kb0sEmLS1WrXi4sofvuA5Zs5CNBnH/BD6AD2Bb\nleAGOe37xFvvFzFjaUmMsvXNy0Til3/92RdwPV1BB6Fa3i+UhlKJdN0hhPc9\nm5lkAv5QVaSHagDYEJfwOvj678GrZ753UhWnYgm8P7rQIW8CI8Jt90q+YdTN\na61U\r\n=NAG8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"73785651c36526eb4a617aad9458215a5b89faaf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"1.4.4"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.4_1619767760799_0.25424393886819674","host":"s3://npm-registry-packages"}},"1.3.4-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.4-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.4-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4e3679d00b9faff8760f14731253b34650431a02","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.4-beta.1.tgz","fileCount":15,"integrity":"sha512-wKAu2snDcsTLTzC/MkgkadnC/4GCUWIhUOOCymtmDWA1M3jrkQmjMwMRoo8qhm1EvFCNXo7LGDj/9r3GYXI9qQ==","signatures":[{"sig":"MEUCIQDWaG9GLXATB1d5Dq3RPrZMJg4KqFe3mbUyjFdXIdn/OAIgSxjTe9wTtMRtxtI0ss4WSv8ItHeElBsYH4I70MqmYEQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgi7I2CRA9TVsSAnZWagAAqdcQAIxeUjD83khPXJeggaNs\nbpSERtm7i9sqNX36Jevo85njvFhEZNyKEN/yDq0jRVg5DvI7Jyee8z9l8YQU\ni684+gUTJ8yNwI2Qz1E/IljChE/0/h3KPCMA/LSANWSPfPy79+ZF8ws56uhT\nilxL7b/uCw2Rst1myVgonKduk3LH/5GYHFwe3CCWPTPnoKCGPA7OtiafwuXt\nSzYujIfrWjhkOSGhjEsHhNfbl2FoYQnQnFidBl4d5gS6xZQHX1BrZ9Lzh1Ot\nSAZdXFJA2Sy1q8iZMsHX4kJSuFZ9L4XLetG2OKhIbDwpExVsy8re/JX/IT5i\nJQB0G+E2zrhDjYqQ2xUZJIBwo5Sa7VOpK6YAetJExUWZCqiRVF2FOaYyfZ/d\no7oIWASdLkHqg6KeCM5j73r9mrIvYYXdT/HV6smeR03c0P6iRJkrGWDsKdCB\n+FhMvzBcxqTgA/Hy4V55P9Qld0XevE93ex6OlcF9lN6aN+PR97yqrsfeMWJR\npW/vBZHVM0HbST0mmOIeq6a4s7FG1YRIdeUViIbD95Df5ls1cKjIrj2V2KEv\n1nKWnjaTHXYEmZXK6v/UEdANLKHrbMVeKuyrwu42RNa0SEFf449xQ7ltfPGB\noVYkFQk+tn4YpWJJc7LwJeFbSVjKGRDwpKGroNtIhRx6cjH209Wc+il1I8GT\nx5PH\r\n=z/37\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f73e9df17aff0b7b9c73535f6b8dfdff32fab66f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"1.4.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.4-beta.1_1619767862313_0.41164035840166435","host":"s3://npm-registry-packages"}},"1.3.4-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.4-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.4-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9ee3d9359059232b52b64c2a23e605541c461e15","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.4-alpha.1.tgz","fileCount":15,"integrity":"sha512-KcYRUgwH8fyipUk7PS0gqUzviIIYMuKEI+aSZ+I5hNpKxEaGpzqdsVqSmglpe3FJ1BYkFba7WxaRBHA0G+z1kQ==","signatures":[{"sig":"MEUCIQCxSGJc5yGH4U0378oPJC2s1dH7DOyiYJpw51v7lH1XwwIgJXOzQBkTvcaIuNSH0KdI9BaIKtQHtppzOufaMjdj7mc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgi7JsCRA9TVsSAnZWagAA/XUP+gLPs1SPYY1zrS5EVWAz\nXwrgSllE/sJIt45YUUdcqM/B5F1cV0Xg+smT3MKyDjosH/LU1yX0hcJs2G8n\nfxnWAMoT0M2r5Z/BH7xlIrrs/x/ZMtusMw/HG/jtl+QLBaJDpAPobqS8Baq0\na0J6Uud2jhMHFhD97Kk2+tZk3x3mB2rGRCG05ER0TwajcJbaxl7tNSabd/cd\nOY8+9uTPPrRIKPN+hJAaQF9xKafhH7vrpoOL91XcIrzDM+2p5F64fMyZKJNh\nNqbwx+fNENJyJWHBptSHolVtmuMnjrAtG92mBK0PNSMhqSVaZdr9pnotLnEA\nfOMtczboX/ppY+QNHTX14c2JRyE0WXxFb5eaPr8NQTfbfL9q2jevCRDna3D6\noM/YVFjMqBPg2KhEaAbrI+k/dbaxAHv5fEz23LZZ8GHCagnL9Q+M/gZH1yOt\n+rqeoQId2qvpdk28X7rjtanVwqTk6qD8r6/qeVRXnQEOKs/13FlZd9nKwQ/A\nuwlXK8/tqAcJKHbTIp7plEy2dsOtqF27eeAYILS0bzy9M0Nyfl84nBMSQXEY\nMlJJP6ygEUqXpQDxtwWE0CbtNAJPoNicKOuOO9fPEBJFIraGM0ysa53hlyUh\nA49q7TrniJeW6EAAKsvVhlg5BI2tHhLVuhO4wFo4qp9AZkahN0K7teu2Oxzt\nVMHP\r\n=O15J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4885ef6f94226945d5028b975e6a69aab19ceb4f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.3","@atlas-engine/persistence.contracts":"1.4.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.4-alpha.1_1619767916217_0.04475085776780574","host":"s3://npm-registry-packages"}},"1.3.4-hotfix-3bc92f-kobfyzbg":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.4-hotfix-3bc92f-kobfyzbg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.4-hotfix-3bc92f-kobfyzbg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"97a8aa990185009ac6d18035851b01c43b2dd635","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.4-hotfix-3bc92f-kobfyzbg.tgz","fileCount":15,"integrity":"sha512-5ELWZcB1SjgcYx9NmyAMjyS4fpHkliPfNS3WOJFv6kWXrRA/rgTEzEPfC52S+A8IwXf2liABIyN7vrrjERKg1Q==","signatures":[{"sig":"MEUCIQCbVLRVS1x83COFA20+VKxYWhc700tlAbPU9cHhZ18tQAIgLLaloiMv8sJwQRuIOM3lLfC03nHXnlXqoeOQ/IJejOc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkpDMCRA9TVsSAnZWagAA0SkP/jJvQgwgAdA/glYgs3Dv\nVQd6p/5Crzzl1M+ctG8qMkJoCZXX9Ww22Ou+3K8LMEAniOiJkfwW0uz7ALPw\nMGrMK5dPUvlcul2iblRaodoOuDdSSD32sxqE1A+ICQ2hfKakIrMphT4c692L\neYddQrncWmQ91A8F7THaRiSSfCiY9/oTyajilZ5ZvnFo9uZWxMvKyyvJcv3c\nvgFklVTGg82vj3tnQEPnOFRPZVSZ/6mAB4EWMh6vioTc3haS33KwAjIHZ9Qq\neyugh+JvkKLvTNqKt0MkAQ3jr5HsV7FWBVEolDnXeA3AiBCiYOdBq/Wjsv+N\nWNDOQL3xK41ftDxZk26DzNxQwsS4mdC49vkzd7dZ6QE5J7372IDYM/rLUy7B\nRJANRLgRm7xCnpmXSSMWrMuM5/AgBaXq4DCj7U9RR6msJxBERIErjq1/TY6a\nwNpdaaybF/RNmW2iEeovJhHLTRdsgPL0G0zIzGiqwZjOqOdBF9M3nk62Fs+f\ncY7E+VpdBBj/rGaskybfuYXaszk9ckRzUIiVN5HkZnmZ4t13GBGbunF9lKgF\nQG7p9uAMLpq0tO9hVTNyTaKkh+nvOI/KChW60GBobthYDdK4L0WgUfuXdM8G\nURAmjdtKtzFD6dJ3druMzGDMToBpDewht/TXjD2oKLNznsTDANSLgTiRZC+8\nVG3X\r\n=PPuD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3bc92fdcda73ac5a645c7a3e87686bf4a49c92eb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfix~fix_parsing_xmls","@atlas-engine/persistence.contracts":"hotfix~fix_parsing_xmls"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.4-hotfix-3bc92f-kobfyzbg_1620218060424_0.47242287269886996","host":"s3://npm-registry-packages"}},"1.3.4-hotfix-afd2d9-kocw9p9i":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.4-hotfix-afd2d9-kocw9p9i","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.4-hotfix-afd2d9-kocw9p9i","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"28ab45c0554d9b877706d8c5d4ccd8b388dcc986","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.4-hotfix-afd2d9-kocw9p9i.tgz","fileCount":15,"integrity":"sha512-x31t0gdMEEmMObbLSHCg3BZGj7C8dxil/jP0ai0cm74m/vW2Di/ZSHsar872P2u0hPIs+22dDcF3cZ8PqKXDew==","signatures":[{"sig":"MEUCIGB2i5n99Dzg2F7WESnY8bpfG10Rux+uPyjFshRcDMjdAiEAzvhj39tXn0NJk9l4cmATGbrUqHX1d7oGo4HReLQtYAA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgk+f8CRA9TVsSAnZWagAA4CsP/0VQimZ5ObyUDghVT+gt\nS8+2fHTcjcLvjuErNoQNPP7dlOA0sUr2y0UZS08Oo4L2R4omOkvX3EPrT8X8\nELFQ95pGd+vS5nXy7NoOF2EBbb071J494g/kxiVS0gypLR33r7B5fuhfWKL3\nozr4vOnsCHm0t3xSCWZGEe/dkMi9rvjXasDEUgv+VUhi++NlH8kiT9BaTjLw\nHmnBrD2WAmk2qtsp9BklXf12pSBAzc6UWOLb0Cxd6WJdwsprnDow0ldSb3TV\nx92MFr281GkY3ffPWwRlZzviwnft3k7buZTcPTFMFnL3eIn87WPMyllcdpVh\nSZuxn0jNyQUk1UvpILRrjF5Qfg78uck+x9ctbFUNgP3UQUGvleAr2CaOsxNL\nOhJyQH3boNpI11Ci9ahAORjFPh5Li8Esf3jN1es8b03mA5slA3YWmkSSJxWD\nGCp+nPwJ6FmM+M25zsHTyJp1Abd8BZioqiyIOPUsDKBlghrF/FAzC6T6/ifM\ntxf1wNlWZKGtP4VAwscciOCAxwknG7D4p3QvVPQFKWWx1c6Xvu/GE14C2/mp\npkMHxwXALTxlh59wTCPhLWRQoya+ImCRhiuZf6CMAvGQBMQroBkTvec71B9/\nR5ERd1pRpRZCbsG2bYcmTCc8xR1xGCzUVcakJ5DoBE6ZAjiThA9FOwOY9wtj\nUZAj\r\n=G/56\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"afd2d9dd485773c075dc5921fad7a6e6b0daaa38","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.4-hotfix-afd2d9-kocw9p9i_1620305915682_0.40362379506783874","host":"s3://npm-registry-packages"}},"1.3.4-hotfixes-ee5127-kocwe7if":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.4-hotfixes-ee5127-kocwe7if","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.4-hotfixes-ee5127-kocwe7if","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"48fcc7ad9c50a3b5603650ca554214913a69b712","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.4-hotfixes-ee5127-kocwe7if.tgz","fileCount":15,"integrity":"sha512-M29dABrsy8sxcas/hMCxLcZQDOe0gWLO+ln+iAZLizMHYqQNyk+3/D/vKgV4OwpzFAfujsCJuJznhbjrn5NIPA==","signatures":[{"sig":"MEUCIA+PsT/8pQUNGQGPRzyrAX4BujHQuVGT3eEIvJrLCFYgAiEA4YxFsmoqp/AvFtQ2CKL8hRSKxCDaccqxA0i1YQFBjoc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgk+jGCRA9TVsSAnZWagAAGBMP/AzNFGudw1n1A1GBFZco\nzkGjUe6XNq0WfLWZ7b1jnP4Yv4jz+v8bq+Av/NrU6kKYfr3ynv9NRK11JYJL\ndZwH1FN/J4t21Q9USYWmUwUNn67qWeBdDlXUXGPoDDMrzZl0zRDGpi9aYHHy\nVkthsM4d/kXupjgh7TrAPFLl978HVefXZUchz5wVpOdIBrpsjE4l88APD8Qr\nhB6VFXE+oXTKSwvfDSD7AVid6yocWanLR5SMNoezgEfZw1t5sBfOjqIYrtm7\nYnDj8g5vl+yjqcQOOyOnEVgWSTVMv783SKc2jQEdd/ATozuuOS0VqUe8fC2Z\n16/DC2P48O3iVNpZclfIQldAMmZltMZBavWalwgFMHVJbYB29okvSQ9YMXrd\ntCgKWqPbQR+nRZuBp9pqFUBlc3mh2NB+yGIfeS/e5E4+HSiLer1f8Gb6ypXS\nG/Si8O+MpPtJk0y0ZMGtZR6lVuMm/Sz33XSFZMTNcDbLYbQQsGlEtiH7YSGC\nVU1w9MG7t8omPBdzBlislPXPaPuB1Hg6KBqOmHR3Uqjub8ejIwy0YW4m5IJ3\nVcxNgP5ozbZ870tUoX6fyI0NH6lDkK3EOM8t4rK+X3p645YQ1rSkkxJTdbgu\nkoNjQwPQ4QTDG0FPOYe1ZUN+CBIvDf5Cj5C/oq92WO1eh6QGzFL/sqvfqh44\n/+NO\r\n=4V0P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ee51277af297649532bf770b1b0733cdbfd4eae6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.4-hotfixes-ee5127-kocwe7if_1620306118162_0.6401319306085145","host":"s3://npm-registry-packages"}},"1.3.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a7dce0f7589849dd954b33addb953a384226ebc1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5.tgz","fileCount":15,"integrity":"sha512-C0GHhbR0j8SY8SmchCh4AJzm1ChJXoI6ZCsPfaMXuQYPHFqezLXhwT/NPg6ZGjFjtkwf0Qil2tmzUDQS++8TXw==","signatures":[{"sig":"MEUCIQD2WapBr4xYQjsIK4LM9RSAu9E1ADmejISr5SeX5rr9sgIgVgmkZBoLdvq0PeTYfiL5WJOca4agG/fw8YhHLuv6JWQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmqDiCRA9TVsSAnZWagAACrkP/1fN1eA4k9y+jsBxksFt\n5MFqPlxq7RJfX2BKf3HsB4+p9AUzcsvdZARjEvxeqSpZ9MKjsmuAmIXGAUds\nmVhKQjI+ynjiZ5u2aTZ3weU6hMiZAtbcWaRk9XVologMRuk0bNiBTDrYq6Ko\nRfrHdiK6BHUmW24bHvDh5MZ5bP0bU+ovspv+q2OObiZEJs74HsibIcFBaKL/\ni7rD72HbZQYaKLRTm/9076VFDJoYXL6zh1s72uRisBAS+iqPI6VL8zRHJ/pX\nSwYd+KCxCE2n1Vx9PCpjhGHwR2Hg5mSDlTdc20XZJ11E5DXBBVmm/q09WeAm\nVwH+ko5DAzJtij8/TGUqkcN7Tb+uyaYJTl1BVfFC5Z1gd2uxZSV32NR2Njvn\nw+S/wU5fRkimDvbhmJtZQo68Tw6Z8kEOxW/gqSHBTWau4g7g2AfqKnLjdxV5\nKQS30SY4zsaw+aayxr5XBlyhbCRZ5kPaz0kARX8/vk8n1tziAcxg8Eq7XPbW\nUq+yVJsoyVCc3QnA6hGkALBPhDYH+NvRvU4xeQe8NmTnprT8CviKB9/bqEN3\nv+YVtuMW1+sRNExG830h6vC4w9j7O+xWeBXZXkbqEi9RZyYK2NbkDfQsYhJf\nfvQTvpqFP9zaz9lGo8aA0Ga8FKcY5Wvula8cAlg/AYhHEmDYVjonogcthw+r\n8HRF\r\n=JBCJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"254b00ebedd063f0ff369ea3596259f1125eda60","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5_1620746466266_0.9848539573801742","host":"s3://npm-registry-packages"}},"1.3.5-hotfixes-bcc907-kok6kf82":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-hotfixes-bcc907-kok6kf82","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-hotfixes-bcc907-kok6kf82","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"482d87fa0e77994e0851725b0ca52a01966ad283","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-hotfixes-bcc907-kok6kf82.tgz","fileCount":15,"integrity":"sha512-3usaoKaI3X5tKGXTTu81m0VMbSyOEgPq9aKg59CM9TgpkYuMeSRbWtJ/0l4MFAoQ1uYkG9+npPm64/oqGqOo/w==","signatures":[{"sig":"MEUCIQC0zYCB3Y58dH6wpmxALL0L0jTewLSPuYO7oaDaN1NfHAIgCEGMaP9fTRjccE5+g6Kn47JopPRHJSSU1SCRsyOawgM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmqDpCRA9TVsSAnZWagAAuBUP/1beO+zpRo8vdfz71Gna\nsXXfS4d+WMVpWGbppgT0CP65EXFyBWmtqhp24SmJibxjGPMDqvJmeAXznRSD\nRjGQDx+EOXvEdy2cgOu7SZTKKhNL6IVvVaZfGjLKCkoJHQ5sx1yoOc837yJs\nU9fKb/9puBynce7dAeshKmFrcyiZLPE7BCnSYWC2UzVurDAL5gKGIPg5GYiJ\nSEjJEDXgsGdBYve5ZULUAK+zdzKoutvgSYOI+YnuIhzbbjtQjSOcRSY3yC0Z\nz75qwrUS+wm7XG+IpYMM7alPh2J4BA+QPUKaVpVJvfcSUOhFY76Z1U1RFVFt\nEQ+pfvdtWoUF8CCuyBc6dHVOYX3o3M0euNg7Y+zwXLFT+55qS2mdNkvUocSF\ntwUVoItqWrbk5xhHdnc6x1U76diLbdrlazY3rk2brj0Raw/SlNnMs7TLMZV7\nB83PNY9Ge91Op4N6ii26b6cK5L/XPoz1MNFvlLOouEhJXpYSNYW3kvStS5K2\nw05RvjJpbIdeSnKC/2cra8VIxQXfxV2z0aNLCSPotU549wP9e970OdTJCGoE\nrEnh0sqGrCoJpTbF20zLoQzvnTSrMmebmwBH274qonFWtOYsFpFxwHXTNYsl\nQGfd6zQlq47p9zWtKr+Sh0CqYbsowSBzQZlnlo0eKkpHFyAfbDsNUdwRdq+A\nkw+H\r\n=sjJz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bcc90761ff562a570eb6b28173fbf66e39ce7337","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-hotfixes-bcc907-kok6kf82_1620746472914_0.3684430840176316","host":"s3://npm-registry-packages"}},"1.3.5-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ddd49fcf51c9856b267f8e3f4fec2de4a00b37fb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-beta.1.tgz","fileCount":15,"integrity":"sha512-fnVaXh06P66IkYxWhWXZ/NLL6H/h7aXgTMuem9cMxAI1RlT3CmNbfzF33Ru9gJH7cLxHqHiqxRUKktFS3tbumg==","signatures":[{"sig":"MEYCIQC3/+a+qiEWC9LtILrvcpUQG6rW0C78CaIhy+b3k0SBdgIhAMfc4JJjGzVzmRNXK82rJvb1TC+aKgq/PXWLaBpypCgX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmqEoCRA9TVsSAnZWagAAqPcP/j0VWMOskW2uzvaxljq2\nHl/7gZI+0kqMYDIqEqs6U4HMPgBT4CeN3RuqC1ws0mHD+j0CMnbxC3VuIEOb\n1thAmUo8IZnY0HdqOeAe2x3ZmV6O0JWaPQ0W5oCePSfItG/dP34Bx6Ff7eUq\nUsU8T7tGa8nXXL3xF9qrtzpi3PkV6KNdRZM+LYDEPlxV4YhkbWCkCwGluCpB\nYe4xBILLbYrapTi+c3mBNX+eU7aAvfRJXNRAppr6w+l8xMb6whFyV8b5DHw3\n7pfBkPjTLGjUNLwJ6aOkYFealEC8qpQnm3m1043dp/8H5qD0j5tgY/kIZlfk\nOAM65HhfDC+YquvvrXdZiG/eWaRd2PmMJgfbjtKf/Ru376wPSb/YojGQueGa\nupWmzdYy3Iyp3Fbij4zQMiTPKQGhGHL9kX2vIfQufdjy/r7XKH4Hddx5JePz\nKqBSEaT2wObbNT/N4XOau5jPa+m++4bg2rjG0qsNnEpARmbS++eEJFPm3e5t\nBK/ERfVAqjXRwsFwjEOhnTzpnv4JuzdGYVZ7+NUfJLc6xjSTOOf+9ex6GtH6\nLeoqtv0Hl809M8hmwjeakcU19tpBnghxPwzt4tTACBLzPDhmqzQd44sadKhJ\nTzvO+HHp+CPJImCetr1IjtdokRtBTOLcVGGZG+ixiJtH6WweP4rrXFPSDryU\nszqb\r\n=U23V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bd3f3d08845fe406f5021a08bb89602a068b355d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-beta.1_1620746535791_0.7493714553135917","host":"s3://npm-registry-packages"}},"1.3.5-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7f29cdba2c6efbef08f736fdd8359781f7946f4d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-alpha.1.tgz","fileCount":15,"integrity":"sha512-soy7PrpQaxF6PP6KjWUh/ozmIFMOyz+cK8oNeu7FGVEUlExFGZAmnreeq5Ks5RqjTgneD1IE7VF8kJZfpdkknw==","signatures":[{"sig":"MEQCIHs58E7kN97BqUSMppURbuIXp4XI6JfBav6lknvKMXbwAiABeuPkGhfHHdk071ZlMxcvt5+7aiQ31OLDVLmgjiY2eg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":510941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmqFsCRA9TVsSAnZWagAAzQoP/AgFEngTM49iogQxM9Wl\n4j3k+MbB7aanDzKaktqnDuQ4Xy5g6ljCb/Rt2fmgNiDmA7KMQk/2K8IZyGl5\n+odEz5nqTYjQNiU5+nf0csHtrIIyd9kmgd2b0WltfVVKkAc3LfYPd5ZIGFtN\n1wN8zSYHLQK7WslXRRztefW9Li6YBv1pg7SCFoa4jSml+x1PERz902DFQ5Ny\nIStpmjQbP/kYU2pTbpGez/gZoadupKWLYs3qTJ4QLFRlDHNsqC/Few3Aj2K3\nPBfo2w6xhDn8cPK9JQfeXp6yt+t8UYZqYWA9ysVdcTElve6//+YZhM4DSeDn\nV1WfrZsu6oWu3qdo0esGU18dr7m+CM7aFg3eyvLVisFW/S27c42IUUzfYrFZ\nsRR1moVVaCb6TwTrWJaPZstFZ2ZVo5HQHHqPKHagrnhQe3TqUf4KUWIdqlTl\nHpvaWVQ2TEqSL/NU1VWbrdkryNiGg+8uCgz8CQxxsk9slU3oRFtiMRG5NHSf\nJWMxXEAQP06bWbbr3CgB0BZuPcLs0QANiLK/hlGVoDz97hXGpQsuJkW7IziF\nCOhYdg4ReOVv1EjpZsGPGP8gHdHs+R0yEVrXULxu3+UmMTRDhJgEantsK1gS\nTQq0A4U7FHJFMEc8+/x7qQBTwND/Ck7tZhR4IoLCLUrdcaFW2BIxGf0e5Wgw\nrCDk\r\n=XdgH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d5ce6b6b6e329aa5d7a8f3ad0398098d70c9f883","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-alpha.1_1620746604043_0.48100401592855135","host":"s3://npm-registry-packages"}},"1.3.5-feature-58f2b1-kottdwk6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-58f2b1-kottdwk6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-58f2b1-kottdwk6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"18ab6eaed334a723a585cedb29be4fedc1513e2e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-58f2b1-kottdwk6.tgz","fileCount":815,"integrity":"sha512-mH8z6hYbftJRSLy0uaeHQj0MCO9hHWm1pLJ5Yk8KtEV7Ijob8gqvXgcUhQ9Gi4G6RrxV8S9/7e7H9gsIT1C9NA==","signatures":[{"sig":"MEYCIQCYPx897itrfDOj1uc4gqSPrLxYPN02T7tUEKgGzHTUWQIhAM3Fro1gtWtbaft6m8R5RP+Lq1SNRI97hNL32nJgt2uL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1103830,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo4R3CRA9TVsSAnZWagAAqXwP/0F5Wg0N3Ahvnb1pL9Th\ny7OhJFagxnqWBSI/Yd29twew8WfJf53vBDMjcfZV4C+Uo789Z9dpWQ0aRQ5D\nhwTjMKIAj18/+VrfFqvqb0+mpcMzLwJ8/78HEei226QDBa4Mp0AOEIYv0Vew\nzMNknO29Q+W340/wVMjfmHaXYAg422+N9DYUY1XOoAtBBDNJ6N8vFwxEnAkH\neVINtUpX8Ms/YMNxOmGRKIReq8+nQaxLHgQJMr1Dp31lOmKNhgeZ2P0d+HHN\nWngDNSMz6gHSkxvhkoojORPXLvga13JOe+ZAOCchfreSW6vC+ppHqA5KG/Gy\n5SStJFRbrL4WYTW6RL85mtsNHwNhB2WAss56YqFcivUn/Il/rHwvZq7oqHZg\n+uQZ/mpXhQjFp8//5orP0AbtDrrxujFLrsYWUk2LbIGq41pEJnWUiVq5pgLs\nUzX2+sp6zie6O4e4bDu+mcpvFeg1ZTOfUId2+5G4rWeVT6boxO9LGrxECZpN\nS5Ldbs67xeELdRMRoQh4BJClJGX4A59U/06DVJDxzi7dPZRk2kzrEkAosbWB\nAucWoF1Tqn3nyqXltLWmcQ2F5kwKqyuq+AMGkR2gS3v5+RPFDQELA1y8kwuJ\nluLQ09brQjBqqJ3/sKmO9XIw6wbx3ckdpu6F9wnIs7WYVXZFaNlVkEWi6mtn\n13+u\r\n=Mw9K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"58f2b13eebf3183cb29cb146c69e09044facd182","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-58f2b1-kottdwk6_1621329014607_0.6620479768928393","host":"s3://npm-registry-packages"}},"1.3.5-hotfix-70ef0a-kottkkju":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-hotfix-70ef0a-kottkkju","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-hotfix-70ef0a-kottkkju","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a8b5a63953006ae5b53dbdd94107b4177140929c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-hotfix-70ef0a-kottkkju.tgz","fileCount":15,"integrity":"sha512-51Q//rTuM98W1mpEcjwRfHZsFDYHCj794+E7Frs8VpNWbS2Nq07oX8iKig1TdcdJTVPVzxTk8uU93pBOUY9Lnw==","signatures":[{"sig":"MEYCIQDHbVYz7zr3jQPmcUjfwOViNxOKg1+Eyt2CzsN3fRVoXwIhAJvmYS7jqcP4JOZc4Qsht6RfMF1B2YLpJniFD07elgRb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo4WWCRA9TVsSAnZWagAAN0EP/0EP11vAD7xaunzHm6ja\nOzEHUmew3U/GFk/7zxidU/KALxJA+J3HTlsOrmmF/jQpVc2bkpb1QV0sM4Gu\nQRW61vhuoZFU8BDQBC8jUGzm9Bh6Dy3/BLSD2QvPmGym87lFYYzfB731x9WM\nL2jpqpS4BWJsEHhnhAnonlA9iWkixhkeN9UqPD8RWIt9qjp1PStW/zfjG4Mw\neUzcd3vhBPY4CWP0MuuUIo8+FSqlxxI2q4BuiAWTk7d8SNheneuMwE+AD3Si\nPAn0jSOD6q567lwTGN3d8/uWIxfCMCnLNTkE1hpPLrlMn+RViX9WLi61og5P\nujN980hbNqt/8bh8C2jq+Dbxqog7asCWtCEQ3KZ+acacfX5F846g95AsiSVx\n+++JY00swKKlYJnODhkxXVQMWyWqy59nZ+5uiisxkXaQaxP4/lp/cpJIcCou\n5DNk1r67F+3lqc108jNyoCUS2PrV2/GVV/nf2aDd9ux5dlpnPW3oow4908Oa\nBH3o7VbcZXOaFQI/YMJtUuxp16OjU8czjWEXP3Ae8uJoD1Sx5wcWEitt0bpw\nwx8ZVRQwnIUAdunejLk/Yq9UY181Sjg2i/XrKZHF8kIlpotjK5bN6Lrc0mvh\n2VNgkbWTA+k2HVE3zI+rdjSXxfXLS88bjb9TMvaRrL2xc6pVYN8ywP2XrSMJ\nXFZW\r\n=vOA6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"70ef0ad792dc96b3ef3c80a607678d847bb85e78","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-hotfix-70ef0a-kottkkju_1621329302319_0.8560493979422168","host":"s3://npm-registry-packages"}},"1.3.5-feature-0c8b08-kotu120l":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-0c8b08-kotu120l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-0c8b08-kotu120l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"09bd16c138566be4f5a01d101f22c4f666314216","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-0c8b08-kotu120l.tgz","fileCount":815,"integrity":"sha512-xcsEOIPPY2oxGINWZyV+CYyMXKqRCSbnPY6cNXhG9W4zBxsNMxMd3e46wIUelW3tstq5YqnHSMsOgiY8U3yLKA==","signatures":[{"sig":"MEQCIDYgpMWrCYatUxnA5lIoRoyTCpPs9/igzkH4mh2+HAhXAiB0GvaoG/N0J0kJMUCfF2mr6W8PWb1DfRUY/ATq84HeUQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1107069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo4ipCRA9TVsSAnZWagAAfaYP/0pG6R3isiCmJxz3R6ms\nZGsktxNBm90DlwGExCWpB2tknQRtrP2aDWTwAtlXQM6TAzqnWIZgzuYwcrdq\njSTOYF21S8isWvNoq5CWjJDtPbgPbN5jVSPyIUV1QXiFufSX5nDxJi2naV6u\nC79lg6wSEyme8WFRN9sjzcD0mV7msSGSSo00HOBOhY6Y9ZEBTjwofKgTffzd\n98+jQ/HmrOfeBwYybJPy4Kv63EogA7ESAesZ4iPU4dyEM1up/O4DMK+jYRc4\nlySMemU+N9Q4fPdwojwpQVKNp1iwi5fT5Pv+0bslovcuLHx5xLZZgyICZm8q\ndojwK3HUjxDZF5etW+rAJgeP1Ww+z9s2k1YByFqnB83Cs7KRLOLGAfVpuDdt\nj3sTLk/aLz+ZrSzUFogvw3e6/RikKTWGVrYZ8GUvZIkoiLG8KenHRgNcrcfb\n10KJFuRUU+8fi1AUMDqsr9tyIB1V7Ue9s9C52cjm2u+fS3b4fhHwplS2KatY\nPPlzyQXeD9+CItGFSlInu59aC3hY3wZqVLzyQ8SzdsCOAIt5Kf1XWKYLlBgR\nCKB5GuduEd8S6KowaqyTNYOMi7X2CG/MElg3AYA/Hd49qSHYEGcKeDKim5uu\nQhx3rYPxQr+Nw+o/dsMpxC6GRS2m5VcDfHj9HvFznGyJg9EabzsIe3FthYeZ\ny1hx\r\n=7DcM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0c8b0896a07221b29114b629b5a5cd88a26f2775","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-0c8b08-kotu120l_1621330088532_0.4905116665180058","host":"s3://npm-registry-packages"}},"1.3.5-feature-7b6c27-kotucvy9":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-7b6c27-kotucvy9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-7b6c27-kotucvy9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f7be70d2b51f22e87bfc55539f16191d6e6542df","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-7b6c27-kotucvy9.tgz","fileCount":815,"integrity":"sha512-j744BwMMdiLHFqleYfN1qBw89gSB/cWqWq5LOykQjkgbm2JPHD7dSFKYz/FTB3HkeU2u13HJ+IcB0Vh3HwWeoQ==","signatures":[{"sig":"MEUCICD5a1l4XQYYzPNgkHcc4sUrNhxE6ZB18o1VspK7UWL4AiEAyfwrFG9AVJbqkHLDqLwa7Ksz9sTTRt7hPc87ypFT75Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo4rYCRA9TVsSAnZWagAAWHwP/2VDlYvBgCnJEOZ2v/6O\n8kszHo0UK2rghG/HTaMvfIKp5xrUM8ZtaTxKRLQ+cQlP5h59xz6J8iCqa09c\nOfidko2YZ9vBn225gjCavc3pSN/7qbjpIKssHdWbSm46S/+MV1ACysdPnvxB\n775WHL4M+6yYF8YsVnlqO5B+21MrFYz39Pi9nqosDazngukph90u3bLZxXMo\nuXvlWC5yETuF0azPU4YFtJjXyBbF24uHMEdkjyzcAj32cZ0MC1BAPqmVNGDe\nIDsEDI7ptDAwfTOBxTPom4pP+2txs8B/DqGvITtb0g3FgQ+1wdnLFekz4Vut\nQGZ7oi7ggVk0pVJOSXsQTDbZdpQ5nVsS3pr6L2Xn26IAh8Z10oXNwswyGRAL\nCkztKTqfG0K9OvyWI1XYq+FznOGYjOfaHkexQ3Lc2zySZmJ0NomUROYuxLdc\n593/Gdadohjb3vSDBe5HJts0WZ2zBBnGg/r/HxlKJ0GSyC6QBM7QM2mxM/42\nQ7mRoF8Ja/nNgTUokjPJz8EV0//i8eEgBZ72IeCl8qNGmdOfnBHAx618vygi\nJ5IWNWrarKBMo7jt93JoOX73hBWz9Nk8UvJtGPVdWogzkg2/Lt7Q5Hz714xt\nHeWlbWntF0hddI+dzIq+JI9a1C37UOL4DrhmKVqKkRxUdJvL08dp8YYmdSiA\nE77Z\r\n=diEL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7b6c27265b01c80c1409527b7680df8e1d76a165","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-7b6c27-kotucvy9_1621330648532_0.15272954504270797","host":"s3://npm-registry-packages"}},"1.3.5-feature-92b27a-kotv6jhr":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-92b27a-kotv6jhr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-92b27a-kotv6jhr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1c6361966e0eaeea97ad49e2296781054e06cf77","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-92b27a-kotv6jhr.tgz","fileCount":815,"integrity":"sha512-ehqywWaN4UGn3K65wuLWmxGqtO1fOEHmB9dvGAUxu5hOyVABinAo1KlHh4a/pZ97QuZnOigFJWDED0TCf9ysUg==","signatures":[{"sig":"MEQCIGnsBQMZuijcb++Y4j/Wc4ogMtwQRpmBAA4WOIMq4jdqAiABkVmAGKe3bTWplEHVy7HWu9F/4zk+NOM0IgBoo5GC4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo5BNCRA9TVsSAnZWagAAswkP+wSUeyqba5rAu5FNQzFl\nGFejsvgYV0XwjR+ZSpdMtuXF/rXsRtmWqnzd/PTN/d7Ee3sXcRri7hjq8QcW\noUCaiLKEFXb4s8GpbiSPCRu2JP4j7L/32HijboGoxf0SF1dloDmGYWH7CXMn\nT80x7AU/Xgs3vCYvc1pc02qmUAFUCYK9BJg6Nt36oMtA5BFaQSDBhWuV6Lp8\nW6xYAPgYE/WGfVCYKM4N97kGQqOoe6Nmp8LnbLJ07mPhTBv79dMuYcNJW/QS\nKINvpBqF94O6y3RL+9tGrQA+c9kc2F9vEz5L4DRJGpBg5T9nKueaG4FAiSNM\nClGl12GxPlEfES24/phZbSvkCDeEp2GUrwQBHjumIzQl5RxC0YeyahNlq9Pa\nIR1MiaaN7LlHHHJMaDl69eV+1tYvqUb80OTP/5ZaBAdCh/xwGg9pNFShpb/v\nXLJM05YD6ec1WQ41MQpGokMzKfKVhz5FN/VUAh7eRPYEGz51ANozPARjGyD6\noTZ5MBHYKYEVbEFBRF92yxGFs9S2oMQKb4bOHF94cxPxYiUK6dumMolA9s/b\n6o3RXxOpiF923HUpMsrnT3+09Jon9Lqa13JM/lsyUk4I6gXgN9qAbUcLrwtH\nfuI86z/Y6yaNC02IRjw3KZ4xmvmAnquz/z/Rz+nUt+tKs0y18bkkBt0u6tMy\nmoTl\r\n=yE6+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"92b27abd8174249a87d2936f244f6ec8464dab92","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-92b27a-kotv6jhr_1621332045176_0.07115716154039431","host":"s3://npm-registry-packages"}},"1.3.5-feature-b8dac9-kotvgl3y":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-b8dac9-kotvgl3y","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-b8dac9-kotvgl3y","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1a9d635a2d81b634e8e4112e0e49a2b6481544bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-b8dac9-kotvgl3y.tgz","fileCount":815,"integrity":"sha512-fwQGRpwii+xpSzc0PLCjcAwl0LPXwrTSdtztH0XjojO7gNzpxNro80GFQZ8DJdHRC7iy4KXNTOit+DS+Yf0nUQ==","signatures":[{"sig":"MEUCIBtxW06t6MNLsVZAACtBI4HQ34Zd36y3WR7ntqHbIXjeAiEAgFxgSSROL0DdgFK28lPwtnwb4NhB+TESGraCC6Mzox4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo5IaCRA9TVsSAnZWagAAIcwP/2YEtI+Ojt/cDeRw2NI1\nCjmk05PBcyq4PlU+h8br0EX7TlRWxat2JONsUTn9er/CZYfrwa6WqgZZqCyJ\nZH2Lw/9//U/mkXR1w5+y5hEEeXcahmWhGPHHWLkN68LXVe5gi4zbBcihgheX\nPfxze7N2XT2QxsKT/KWBStbsWM2RTuBS08ttNVgcjMUp9Xo+981cVAwO/Ppg\nMeQ9WHpv8Mg3qzsrjpBgfhmbOoV6lLH63J9JfCLeG2nZfY/9MyrGsayeGJ7A\nA0pmNqvHvZ1j0ddrhcEMzVLeQ5k/rX7Dea4cEXnYw/9qUh2Ua9QBQI3lFJoj\nGXwr5dL+I80YnVHpk0hPAi/FmpSzHAMz4JTAzrGMn9FLfbWuAtjqGvjnnn+2\nLtzJ+4qU69TUddsA1NqAC6PSU3Wty05xzla38H0jW0vJzJPrhPfO0Im6v5kx\ng+aWOkWaGafPn7ECgmtk3dBL42NLI5aUJZwdTC+DCOu8VhFkhRJXeo40qM3x\nkWci3XB4gWCRUfperS6bdPd8uLwTF849XHFxzwQctCFMC1PpUU7mjE8RueBG\nJ/+hyB97klQpiFc2PZ0LqHqzxka++0KQcFx7cva0NMlJNGLL/2MWvItyxtWY\nTWyE44zhIWQLfzPgzwjucXKq1lV1qPF2pDxnfPBjYgWBsEVRZDWSzgbfm73N\nS0HJ\r\n=5fl+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b8dac9b2b00fbfcc97d22c0c9473d32e58502f21","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-b8dac9-kotvgl3y_1621332505940_0.08483428747613075","host":"s3://npm-registry-packages"}},"1.3.5-hotfix-17ddff-kotwwarq":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-hotfix-17ddff-kotwwarq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-hotfix-17ddff-kotwwarq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ca88933ae1857af67e8eedb2efa20901c116a781","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-hotfix-17ddff-kotwwarq.tgz","fileCount":15,"integrity":"sha512-BEEiJrVXQQMIZXhmLmNEMcm2zubyZ2Av/iE5VNHu8CFGR4KmlzC9GkY5HGRJpe8agVBpoQlYu58F7Jfrl2ddoQ==","signatures":[{"sig":"MEQCIF/a+ZbSmj9iyUnJ6oyhsqwIsAwkOzgx4CjMvolNdE0JAiA094HEJa5Ma46xRunIxSzMLK8rqENJ+OYcm0brkYO7kw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo5tlCRA9TVsSAnZWagAAe9QP/jWlTqFylyNDb7htXftd\nQs0Lj58hdfHy16xlYWoN2Dfa9FLltOB6PHnmW9GG0f6VB+6Z8V3un79UgHFW\n5ivfSxMAErp/uKSvpUTONMZHyvSENoNYBe9G4ZKLPMqLMzJRyENH/kSyeCiv\nK+dyWMDSTDUu9S0Boypa1bFSrotC0TtSVaCg2MCcJGvjNCGcuRVgPylTgG7/\nZi45ITYP29Ko5PfvuQ/GP7U7SNq63v+5m/Ry5DkmHb5d1Vxkht5d9f9RWI8H\n9kK/JdfajOx9eYZ9m0yOa+PPVDhTZXF8VFN1IerDsx095eYMNl3Z+H8Fc0i3\nFIT8eIxjTiEbVjbLvnxyppR+w8g/Slc2/Uhu6i/GG4HHgg2ukBwzbhiPONAr\nP7/QVJ1ZaESTp++LOPVPrkH2p5WUr0I7tlUPACFiJ8tykFo1WzHFL3Ss0+tS\nCA4ruX7r93tlT3B8hq+jxreBiHS4dULJvpm7l61jI9n/cq57wtZ9OsA13BcJ\n3rrUHFSGitlf7Uwmh0g5R5lGCyyJYk5EHebWp2NFdaEyTghSppSLh/zNVbc4\nPbuOpt0/JO/z4x5dzXD6k/4g/q4u5CFytZ0fJW8KY0NE93GCe12xzyl02wBn\nUGSckIBpEPB1po5mROGgJUU/oTfqF+pUE8Rz4xA4Pe4iTXNEV1RRev04T9jR\nUPkB\r\n=dQ+M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"17ddffea6a0418aa863f450a4347ea5e9137faf5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-hotfix-17ddff-kotwwarq_1621334884592_0.4922549515759349","host":"s3://npm-registry-packages"}},"1.3.5-feature-f670b1-koty6a7c":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-f670b1-koty6a7c","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-f670b1-koty6a7c","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b9fc1389a647e04d518717423350274ec1964eb4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-f670b1-koty6a7c.tgz","fileCount":815,"integrity":"sha512-L0MfyrxizRTDB/M2qGKff2XITYelkmb1kgtDPb7O6ML707TOCat34NUGDgsR4/5nGdemEul7agmjjxupy67mdA==","signatures":[{"sig":"MEYCIQCzytFKOvOvEjdvobS0AXvaOoc1kE66JMBMX9JSeOcNGQIhAJmOpjKqX8QA4rQCquiZAJVDDOcEMamcpHA8IPTArwH7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo6PnCRA9TVsSAnZWagAAw+gP/3lYlT2K65Zm7B6XieIi\n0Q7baVbGEcux8x/hAhWJolqqpXdGsPKb/B2H1s4Fs45NajVH/yr+L+Ni3gcO\nTFjvX2KuygSPvTAS8JWuAXSs3whpi65QPNNO7FrvWGbNSuvfiOb41XBkM+zy\ntuoyKKcgEldb1gu7p7ridvRQ4Nb2N2nEJpAeiK9WNFfXITQghFteNlalh56p\nZ+BSlSZbSSRjELX8oQL+7QsbouqR9eYBHYhWxSOogEG5NtklSE+AqEnzBill\n0KTzpUxmywwGy0sQr9NFE/5IWp79G5WHtlFNxYpmSX2hi5ZdvfJwIkr16J72\nuh3PYeM9HzAtxvJezAILTFwNibPvjC801Eb3L/TvA7hbfT3svBn58irDpq8b\nK6WcGd8y7s7/D+wlFusJdrEBWbdPN/4YH4sHtGkHtNXHXJGAsne51yX6EIiq\nKtVff8H3cm2QHMbbdSdgi2MBjeO2UQiERm19enOMujsbS7v5TunStJC+oQha\nK2Qu0cFvjx16FyUIMYiAenspyRWyBaVFK8cxlyjC1i4+khGHDcPJ7CDkRWtl\ntEbNcyRBOQq9hVq858Wcks/7AptyiUybmvoPBg/GKbsT8VA6wES55vFUH3cK\nZH64J9sNIzeq6S8kht7o70EsZJjnO3DJuqFA1WGWIF06mGmu0tyolE30BFyG\n0Crn\r\n=52ku\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f670b174f6a7663ff34b65d7c22f778c464a46ea","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-f670b1-koty6a7c_1621337062965_0.6958046130086064","host":"s3://npm-registry-packages"}},"1.3.5-feature-e95942-kotypy7e":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-e95942-kotypy7e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-e95942-kotypy7e","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"083237cbb2cb576384e2c52ef27b3667c47638f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-e95942-kotypy7e.tgz","fileCount":815,"integrity":"sha512-XAiJDrAUzCTJ4mfyC3/gVkx4SXerimZp80+4k5ADTPRMHl24LbFo+pVIHntGU0HD4D4cW1Bs+6fgeYB6Em4qyg==","signatures":[{"sig":"MEYCIQDEYuWgskuxdXHuygF1FH/qVsKLIirbLFLj65puXgV/OAIhAIaqcPGAQGRLJloMZxtS1nraemkEYcTWTdN7mJJVTW+9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo6d6CRA9TVsSAnZWagAAVVoP/iD2Con/cvLWzWA1k2RS\nCTr2Ib+ASIXbWrz/5o0DGWRtbpiELL6mM8cWWH8z/UhI1YhkGWvwWsz2+Ioo\nH7HZ5F/1naiOVPouzGgPSZIpsVIVCqP41uGJAPb2XxycxGs0abdyJRHTxAKy\nVQW7fd25mujelCJDbN3C/dR7uzMaxjM2T6FfU+1cLxmywhZX5Tljw5AKY+b6\nNgyyuN63PyqIeL6w0lll2W7AJKcqDHwn+Ddg6B+hrGyaNiezzHog2b1aN+qJ\nq25F07PL5DLQ7NiwBhB8QoUeEZ2ok0cD9QDvhuBOph93pbm288bLJiuaeHQI\ndejfjMxnK4fGgEj8jPWmnHF4q5F3wdXvgLEZ51IOWLtlAdGY6F5ZyafwvdVO\n5Tuu/wYlBSg+31VMh+QzxM6J4jR1fNn88+i7jfEBVVV35NrEPIx9eX6H2C0G\n9Lph5RRLMiJeItYoczpbcKts6o8bdjxkMAtylrNBQ2+U027VJkCLpNs5oQUF\nniYQ32Ex11EXJBvfRtRNzRPO9ip2SHaiRNJxQeuxpjWh2MiNqvjh4R1wsh2l\nl/kjf+JE0AKWV5cWK3eCaZvqFaGT68Pc3uW47xEPy6w0aPyn/TsABelrwygc\noI/f2EGnVIvZdnbTqOXcYXjNQILE9cb+Vsr9aDuVFVNfW4KgA2+jFI6FB3OM\nYzfy\r\n=rV/a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e95942d09a2be6cee3f876a73cfb9a307f5c18d2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-e95942-kotypy7e_1621337977821_0.18792971515582968","host":"s3://npm-registry-packages"}},"1.3.5-feature-a7ffe9-kotz5esw":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-a7ffe9-kotz5esw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-a7ffe9-kotz5esw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"daf8f08dd77bd733280414cea1ddda9d6f793b75","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-a7ffe9-kotz5esw.tgz","fileCount":815,"integrity":"sha512-ZWbXWvaIogFyjMkXSWEsmY5QPrjh7WDNQl96qzFCqYCE2MolC7X4eWafZXjI4DS0RvNrHkFbLNko8/4E10BeXw==","signatures":[{"sig":"MEYCIQDnfk9oVKFIWh5xCuiXU1w/PfqqNGQ4FKuiFxRmdTI5aQIhAMRMOALvzW/o5iFn/xrVvXIktHAJNASsq6Y9Bs9zvVoS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo6pACRA9TVsSAnZWagAAVMsQAIJeUucWpJD0Xmw6P2/D\n6qx+mbyb1Ljn5M4a2o9Go3zf99ddaLHp+ii4wBIMcaQWK63SgYknYiwi2yds\nimGhcA73DbnfSecvVg5VnW58hovnJCd3CwBG3gJedK9nIVSSdXdDH4sTvmJL\nZROPdEu2JPbKIkRyBkCCg73hvuJXADTon4TyLCcsxiRKAXX5EtSiUBMLa4hK\nu9QuhSLBMNn3swiGBx5YNUOKZzj1uNZXqW9mIaNXyt2AnSvf8RGktlh64WLq\n2jHqr1w0cl/RBQUcR0vzqkgvjhPme4jypgKchGQgdPg278ap4y7n0pjc0Dsm\nx/K2aQKwC/E8XLEx0GcQ0HHnQnYl+PcSEKgW/jMOgni1JiKl5O8mzEMffQCO\njOCTem6ul+kl64hpccjsGs2NvbV157JT5QE0b7ifsnvft8Y0K3aMJIuk5GDe\n/A6HAjLhenXsFe5saD4FErB15JVa0ZnQiJp7CbIGawb3tWDY59kB0ffAo5pa\nHL2EnI6pL6nOAlpn9Lcc9OmoSl/gnjnbcAndj0kdaF9yeMYnZAT5AXt6x1X4\n3PIatR7w/uxEkqwJISgUa7OtxuOgOnyLvyCY88YiPRwUB4IdpIAMY9ZDoYt8\nyfNeDH4hg/Pkf8ubQGg8LOVquqqdqmTwRgTf0N17iJfO7d51MJJOUN/Wr05G\nDWHe\r\n=vrIw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a7ffe9b140add0f552927105aa75cf71984d70fd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-a7ffe9-kotz5esw_1621338687803_0.584664901866182","host":"s3://npm-registry-packages"}},"1.3.5-feature-861069-kotzd9c8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-861069-kotzd9c8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-861069-kotzd9c8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"08abe097edcaf3281bf843b34da99428df8deda9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-861069-kotzd9c8.tgz","fileCount":815,"integrity":"sha512-zz6yQFxwwZCNzcJ2ETbTbg//vT4gQwwZQp1doA98kWzsbTuIBtWEc4EXWgGdndkirMaKYpPOEjicDPU+4zEfyQ==","signatures":[{"sig":"MEUCIQDTZa+XMbLZcDx6y3IuAlwt89mGq5YUvJBPRpHsWq+tZgIgcpzJwA1cT3+EHkOKZUKwEDJxKkkzFeJzvlVrUbSFOa8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo6vLCRA9TVsSAnZWagAANwIP/3bWaRimoTVYDWr4Ucbu\ncalzC5FzdiQ3OWQlgmePlX77Gjgfctorld9PttTSmUbSMAtXwOqFWiVZBKA9\nBp96ra+9aZemr8N/Wzzedshp05oyNlYVZrkYBSCm8gDbmsps8y1S8Hhpb6Tm\n1Th222KOoyqeHWuSIiDsA5g0CtLSnQmyCxGcWT4LWrDW2WI/CSB0FEVJaU/6\n6NbgcsL+IPPYp5lGwvelIdYzrOQAnJK40tFwpdaK2CF64pELCI/Pwo1dsMyT\nleOvy+dqkdpaJc4KKTb06qSnuLSxO4brTGZiWpOL6txwuNE7wA9pwMRFk3H9\ntf0fYwpR7uvYIK3Qd9Dd3IS9kTTLae99C330ANT9T0qwnM2n5NCJWpEJ2mW/\nHq8EKJn40hsnVrOYQoAZMgwUEwdGZAEyVO7odNxNh7uhDeEfCyTln4liZem8\nkc8RyyjkayEw2DDti1YWtuxuxhnb/AHe7xzxmoOr8b3FAolIuiyC7sPDrOGv\ncuDzkOqhJeQJMwxk9AFCrmpJFfyFaYEZoIUjxT9Y7UlIk4qdNtxlK9AijM4D\nRqd4dS2jFEnjWq/p1RiRECGxj5J0QBSJDUcQEMjFxqhYS2MB5R3nWjrjS4j4\nHjQ3+DSwaXe5aTrXOzzBpplz/GZlnIyup0sONfPwftSoIZbAcslDYSLopBWA\nqdl/\r\n=wcHx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"861069a13f7952b87dcf46f577ce89c9daaf62d3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-861069-kotzd9c8_1621339082918_0.837525407943263","host":"s3://npm-registry-packages"}},"1.3.5-feature-4d1762-kou1ln5r":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-4d1762-kou1ln5r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-4d1762-kou1ln5r","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8dcc4c8fe0863c4ab0b9657062c1ab501df9675b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-4d1762-kou1ln5r.tgz","fileCount":815,"integrity":"sha512-bj04i9TVjb9wZaOrOqsNjVU0c8pZyn71rh86AuNV3/jF1kvUic9u3UJIT6Umcge9WOgOkiSV67+k9MqnvgvmDw==","signatures":[{"sig":"MEQCIE1MXLGq8a/oPuSVe0XSnwy/jylmqDk/uQpKjp6gMJavAiAv7I3pOuoWxIz6mypZ6nQbvSKqt9hoXe2LQ3EvwXQ29w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1106580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo7peCRA9TVsSAnZWagAAZJgP/jU5IIaADDwTDnxPK5Xu\n0/Z2ya0rIbkAO7XuAyWUIcnjPZunLu6oZHVh46N2TFKkDwadgmu6vYNjWlOR\nfXAtbbF8kINzBrdVeoTl4ZBAQMC4h+U4Nx5oj6ud1dXpmPIPDSJYv/Wsreef\nLOMpJ9+a39j2X34Z3dLz4jgFhpPGYWg1cQVkMamkynFBhRGpSwBHpHW6WpiO\nQ9qfLvd+jcoEXS13NoH97cl13Xqvs+QcERiC0wrQzz8dcVjh9QyN7KxjTDpZ\ncgVl0T55hd1J57HInltfZ0/DhxshASiPGS2HKqrGxqCvUhw0nBIvZDv+AJlR\nITwwmx7seyOkiVFgqQpv/3r/as/RSo0kvzcbVhgnU8UVjSoE/0Lz/psKHQql\n9oGYT650qBviYEkU5qrATFD3KwosO9RS1PeDhD3fAjxMnxkL2HiFfTGgr+rZ\n9FsXzod9VOYx3bYKr/S/9DnY40ak+aHP+UyzhOpKobXHUeFUQlI71l04By/Y\nMSZHQaabR4H+yPOAik2XXaFpAAJGK80Ik8+JQi4Y29r0azBzDWZCCLDdsFmW\nXbhs6cKa4lj1gGq+kX1njL78ecC9H4US4BwJGL0UDxyEFCWX+297nIjxvLuH\n2r2qEzH6lTHmaMTNQx+IJdKF03KIw/q4BoLz4tYk85CgSGGKaz++CA10GAJZ\n630p\r\n=WMX2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4d17624991374d38c8f3219cca873cf313cf30ed","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-4d1762-kou1ln5r_1621342814361_0.4671603336491734","host":"s3://npm-registry-packages"}},"1.3.5-feature-2a7e1c-kou25trq":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-2a7e1c-kou25trq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-2a7e1c-kou25trq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d0fbd37f1be1c3b2db09a11add5c108569cfddb4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-2a7e1c-kou25trq.tgz","fileCount":815,"integrity":"sha512-jjTRvIk8HOW6dxjm2WsJ3b2P865NtCJUGwKrGmZTQ0Igl8qk6oY6f/eT2qfB9SVuUtWXNSx7ZCUYVMDImpDKIQ==","signatures":[{"sig":"MEQCIG9JP4788umOWY0pJ+XYhVm/Hibpz14aYTu9eXXPeV3sAiBL93x0HChFOwYXshSsyWs7xQn7MVXQ3MbIsjC3cQNVVA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1104698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo74SCRA9TVsSAnZWagAAFXAQAJqU3GRakWvEXcLK8GH6\nioB7DboiMdD8Nwg4qneWkgyVD96cI5ZxKeFBWULUJ4Y8q/dKzN5gtzl7k9hx\n92p8H7zgY/BQfRPENeP/sQsT9LU46Y7ofLDjzjlwVISsdPF3EDIzIjZuppi0\nuElSM4mJH09dKM+UbS0Zw6vhsRWUYTVNAS2zCDVa1NI4bGQFJHKISzWMYfZt\nBZwThG/P7CtDXBVNBLwCz6HDAVsy5TwkzUnYw5olxJGfgkEnArPwl69Z9rDT\n5mtq3d9E4AlqtGgOKFgkJylDLSmlgWHnsNC7AV/ENhHYk3TZST/Fn1TXlwLk\nSd+6RkmPTCLWZ9ReuqAn8dGPkRVMVVHHa7thahT4y/PQe7BQcZaUAYi/3Sph\nqMxZ3fQT3X6BsliB5wx3qYsX9Ccy0iTjvfYovbd+W6LgqxbylaitIZnwO/Br\nW5760IczRttB7wJGPlt+YsFRRGrdEH883kRASdse7wo1uWfdWN/81IdNQCT8\n3jAmXb0Dk6wPotoob7RTDERZEOtIM5pW9G66k1w/ykCOu/AJJKDwf8og1SXf\n8jRNDSuFSHFTrs5CI27BOXW9bdGbFNt/07gEKsLjWZKiPIGqfUxms1eVGNlc\neXqUJwbf3OnPSLtMbmt/wazqDGLS2IvzBzov9H7p7aibJp95jnDTDNQjqnNZ\nB5TS\r\n=8CEs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2a7e1cff4ded515efcefa3605d2e154f44b32b0a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-2a7e1c-kou25trq_1621343762425_0.11227088012568465","host":"s3://npm-registry-packages"}},"1.3.5-hotfix-2f148c-kou4rufu":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-hotfix-2f148c-kou4rufu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-hotfix-2f148c-kou4rufu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fec2a2cdac1a468569d28910c0ab153450595267","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-hotfix-2f148c-kou4rufu.tgz","fileCount":15,"integrity":"sha512-4K9kmJl/S3BDRjiUj0ffi+rPRcdYXPTLBWdKb/ZqsBx5L9//iCY8k5SiXt17ohkMRo52SVP6rAn6EXJwX2y8Vg==","signatures":[{"sig":"MEQCIAnSvcbYcKwuBW8bHbzGFmhEKFFY8n80JCg7SPW2VKlSAiBERirl3rZ20poBWIR4jVDi9xO1C9rJZOvtm0DZhu54BA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo88VCRA9TVsSAnZWagAAT4kP/2isNegv3iYL91TgyD6i\nw2zhS5UqO6uigGeg+T3wYasURCpShnXggVK0F61ZbWMJ8XkGiPh958D0L1cn\n4yOvVd7Gl4P6A8CHdxNbj4TG5ArmRhLKpTrYGu+stZEK+UxfYBBNEd76T/zt\nCyHm0jefaOfyJnrOCJXyHHzJ17Wh0Sf/+otbitZNz74SxwaRmXX3oOp3+8Yd\n9DCh1snpvNt7qNh8m2ZbugiKH+qm//lcvYow/3aVrDUBFRTTR25z6UxzT3Ft\ndPaf7JApQ0WsJYQbsutSiJgDlL6UzbZqCY+H4X+SEY8a5BlqY0L1nANT3rRY\nJJq6SHRkjDaAV6Ilkk0LEdpamAHURkOUTBxS2udxJZcjbCe+IMVjU/3k7UOd\nUV3ajyqK+7h+HZJ29QKNZgUrpjjVLEc22emFgen4Wrbu3x8o/5gbhFQGh3JK\n1/KPpeEMcaMamlyreRPMf3LCYSBcebO7eXJo0quxgpCE1j0Aqe5wZ6vxyRct\n9kEU6REk/uneqylmAIn0opzWm9x6KOS2t+Ffv0jr2bBXa3uMJ4nPmIYLnvKo\nltSGFf15qs2t3FFKjNhkNosoAN4q2e8+xTDJ+TbHjDtClf1sgRgW2q+emV2M\nE7YlgO5OuYaDnzmv6E9+fIXftQHCnvsuzXYRBN2C23FCv3Uy/rT0SpaWDluI\nY5Ye\r\n=zKCy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2f148c28820c0884fa2058e358fb9a0e62dcb932","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-hotfix-2f148c-kou4rufu_1621348117205_0.49050186339870794","host":"s3://npm-registry-packages"}},"1.3.5-hotfixes-22bb90-kou61v19":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-hotfixes-22bb90-kou61v19","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-hotfixes-22bb90-kou61v19","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cfd99069710de29cb9117cee39d1cb445317e6e1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-hotfixes-22bb90-kou61v19.tgz","fileCount":15,"integrity":"sha512-3wy/9YFPU+F6GjQfx+kyzPHQkpmhW0Rvl6PdFn5uLYIS/FRVjUydiyF1t9IUoRVceywG/u8M0/4/RU5S5u8ACA==","signatures":[{"sig":"MEUCIQDo2KpLSs588uY4CW/h0m+t0M/66vgz2Wd5HN4soJ8czAIgDSTXC6SG1c7IRVfJ38SNeft7b87L2YiyvsDCJxRYgJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo9d3CRA9TVsSAnZWagAA7KUP/280eVmcRgUDqF8ih1yU\nLfCfGUlLdXVJBRlLftfRFxND8m56u7nf+BPHv152zPqO0k5lv25WJZlWL9Ac\nBhmeCYhwmcdThBT5ee9yvq0v/shwt2HVgH53mBWsEw5ERRhg+6hTbj1USeEJ\n52dQLaFV3dN13pO0lg3EQL8j4oHSmsqd8A0z+ppRQAnK1QPnOVAQlB8z3TdN\npIxCP0hQY19TWyVIXoogfhS7Pq8ZD/lRv3T8pqZTfxSkURdIyIrN9z/MYsJZ\nEiMi/M8X9tkECv7VUO1QZRZwE0Q5weMjnOjtHmQVoHERboV6ddIYZmtJQE4D\nXJVzrrjm8rIGvTjt04X5VeRvNRvXbHJL5R74wvUmdryeO22CBUsRK+1JbIcN\nSAALB7aTNCbS2kVzJ9EY6uWM/WLQQJ74vf4BNNQypTpge++mnZOR0sxdarxO\nDyTHwaSHva7j6z8HngyOtD0CF1ZNoiKpsr8/IY6fn0Ao118Us8UzuduNMZ5+\nh5OoKTCcCEScYUVXpnchz1IzgAHkZWcwIbGK1t/oaEZLQXtT7+3WkMjPPAjW\n0ktH7JlVPkmtNiDxCjYJ8CWcBwJOEBgGZXVoa/10FbY1Gw+SR0s8+FR/HSiB\nYVa+TTeFDa+dbU2i2vFXhffAMVb+NtDIHOXNYQwJhDbf77NMtNI6Ljwc1kn7\nQZF7\r\n=+ftF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"22bb9029358b028ae3af88d5abf6631cf8efc438","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-hotfixes-22bb90-kou61v19_1621350262616_0.45921857956199985","host":"s3://npm-registry-packages"}},"1.3.5-feature-a0e719-kouc1dzb":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-a0e719-kouc1dzb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-a0e719-kouc1dzb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1afe28af4543b070c5cf842738b36a3e66deefb5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-a0e719-kouc1dzb.tgz","fileCount":815,"integrity":"sha512-Nl6729fpcPUUfDxd5FSqCXsBZ6fPSuMta9tNLokdOvnKxZJy1ET7jWZ06M+2TE8UHJsjhpuERQEykA0RG9vNSg==","signatures":[{"sig":"MEUCIQDVmnWeJV5jQ5W3HB5U9QLqm2jMH0IjaAsI5oOZs3fRGgIgYV9CHfuamf5gHW3sdEt0wuTau0UzPqK7aJzUW8QVoU0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1104298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo/7lCRA9TVsSAnZWagAAJRIQAIdtDpS4Q4PhGruUphdg\n2rL5kz8Sxka+1x3laFhbgMRlx/E7B3zUvivn7izBNFPo9qLyjFnRQRcGLpJI\nDZETBjhIl1VFDcjbzu60KM9OAr0DZex22LRE+W1jjzYRsmp1Rd5vVR97YdO4\ncaA4HOGDOBZvdgDehWrs/RdWY4DQkDHTZp6vZsYibgqDY76OuKXr0yWSWwc5\nryjc4rI7b/hdOyZxHWt6cs2SteGZH9RZ716n07PtQrF7opxnJgMRT8BHANEE\nhUYPUYG/PR4IeP0du24/lD07mwdpMu1e9yh3WkKnzTTeKLOd5M1QrJD22QWW\npBqJi7yrQaCcwDXOthQtrXneLrwnqdDyxS0WHHQxYdrDwMkWpUZiL9McRf1L\nySc4QX4+RR0vUoFkUx/s7SntBBj4doWcDGWA55cJpX8fDVhGT07K4Fl0XHlX\nXbmLaKJ7emJLXE5a0z4Z+CaJDkmdBNpwpfZNlEGQdCGANSwpagGtmQqJodcc\nmK9cGWjaJEOXWku9vtDxpQgpIIOcLUS3bOiAlLBHY8PbOCiJUgMHGNAPONMs\nmGgIY/kIYSw8rwxqhC3XTL37H8Z1krzVRVl/lSRIda3/Fe0WSLorvixKuYNZ\n5RoxeUQo9Gb1XcHqyhQ4yQLVmiyshcKURi6Tc67RlyHbOckrFUnUO4Ne1yJy\nnpjg\r\n=D5+J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a0e71911cc144ffc9199257660f4d8796db9ad0c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-a0e719-kouc1dzb_1621360356626_0.4315534813375095","host":"s3://npm-registry-packages"}},"1.3.5-feature-3f3402-kov6r63i":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-3f3402-kov6r63i","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-3f3402-kov6r63i","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0efc8bc5cebfc812d20129dd76ef30e6159a602","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-3f3402-kov6r63i.tgz","fileCount":815,"integrity":"sha512-hbHlVTEUvt8k0nIfqBYZIDBpx4AR2jIQ0nYUiehLIHYDmoPL/gKSjnt0uW27G6LpMwsup/14aMi4CL1KpPJTPA==","signatures":[{"sig":"MEUCIGEdbLTXgrmr195OagVH8dWTPdEHg5nD+obDeTJpWk7rAiEA/R/acVeQgkiFlpdiXV0NV3ztDGE/84WMlhOH1Juq5Nc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1104360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpMheCRA9TVsSAnZWagAAPq4P/iH9gljjHxvnlVDKm51R\njMrip0XHW9rdGPwNtFmgXQUceiervdGmZMnHYX3EQObnPywGHqpWPzRJT05Q\nv/gf9lfpiTJULtosKj9x5DdI3riKRMN4Dm8CdcDc4+H6TvupvD+s8GLyXkcj\nDx72d7EXvFqpOrntmfkGI/snc2+7+pMNDoEIIVUrHcc5sKFKuSDAlD2LAh3r\nPp6SuF0ltXqYyjt5OxNGSLmWv2by3K+oq87g6PzK5rhA2mOPRf2WbVqlRtmi\nLpjgVKpZ11hMjS2pKSejMCvfmUP/jWlZ9SFUJRfIsrNldyAdLfci1wWF7/i0\nAh9rhmOHXQkX+/zTMZRpam5eEMIBCFRBUc8AcoRz+dnX315B5z4zPmlZ6H6W\nLkJm6/AbcPrjJV/N4SKYr8Jx5WXxBGDNvlwpwQXniH5cXHUpiag86FUl4KGW\n4MHr4BUT2Szjffgx3jGtCN7pjrEjE1OHVV41eyn8/wHczhX+OwpDB3nnp8UI\nil2D/bwOS2Ytl/e0AXfEKeCgrIiINgtv2ALFbt+93Bv4w16btH3iHQU3fgB4\nMdYS3kMOoWiE6AL0fKBb6OwigYluvzkmIJ0nmqz3LdUz9c8Ip07hDJ90uIgg\ng9Ss6uSR6T++rFJhgWbW8o1YBdMXDwUwfMXXTAtZ5mTCtf3dSm51unmZDCB9\nSEyF\r\n=LhN2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3f340222e9f8eecae8f6586a908f0169b1b4713d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-3f3402-kov6r63i_1621411933973_0.5660166049197788","host":"s3://npm-registry-packages"}},"1.3.5-feature-6bc3ed-kov86sgr":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-6bc3ed-kov86sgr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-6bc3ed-kov86sgr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4e09909561ea06bbcd8762b3af4bae6384ee74ff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-6bc3ed-kov86sgr.tgz","fileCount":820,"integrity":"sha512-tSodhMu097t6rAVkkAUmv1B8QAoWyN/0hO1otjENDfD48GjWMBSXoIEIoAZ97CZ436hpM94kg8eo4xDo3YpQ7A==","signatures":[{"sig":"MEYCIQDdhXIhBpu39C9bpGYpq1TWJsWYHguCRGIf7JjVO7vtHgIhAMh9/c9KwmCCCAKtth/6gmZF3+2k5E2WbVt/ohhPCuBF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1107663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpNHDCRA9TVsSAnZWagAAqr8P/2topmTdsDdZ9wx35nHp\niNipqVy07QEx6n3sBvyi0hJbTqRtcFoe0QYAaxk/IWP4UX1sKTTOYYn+gdS8\nDXBv062mtxD7k5g/Q3c4CVsQD+aZfV4XcUaTNpxBzaHLrezWBDvVNLflPBvI\n2pku4tVohvNgct12GSsxTIRV1O/IHVqbXsN6fAhNaDK5e4Nh1I8Fddw7Qf58\nJw7+hZ9y8ArD225f4OrqJtH12xJtnIFsXyfXZfTgirHMeqfKkcKRIdWm6eUc\nx5JFj/z91wXRSofl9yd08CTOkvvXVRFVsI4INwdO8wZkPJdR4RcyvgqtutXk\nuXjnCPyhitwPsWrdFvPF1V5URWn9WVz488KBKgyziV2YW/UcvjefxrICjEfh\nceSymC0oBI4ukcDLyxDqQxabI435RSK4Yn3htF62Vhx8XzhBCj0fCFASauAJ\nYXY0v33AMmhdzhq/LbUynz5OwNtapHCggdKtq5lFXOATgL5NgFAECeKWGbw4\nE3He8eXIUIwRjXl34x5pTRop2DRg1Vh4N/RXRyomDpAbUTE0vjzv2CmjdAbG\n23+BzaI8sDPrrPFnb/CTwb1DCQfYAho9TVXZJUR5f4mmfobMaqjwWy7F0AA/\nrBTTVjIoFzwsWdmf4gnhksiDsrbvyLFBetCxDCBKXM7Lw24JmYbTPzssesJH\nJBfJ\r\n=Ko/F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6bc3ed37d1d9e1bc753190ba97b65fe719ee3009","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-6bc3ed-kov86sgr_1621414339273_0.1464380600186339","host":"s3://npm-registry-packages"}},"1.3.5-feature-279e2a-kova2m4x":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-279e2a-kova2m4x","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-279e2a-kova2m4x","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8a4a8ad1b9bcf7577a7e6e789e41deda7ca1c086","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-279e2a-kova2m4x.tgz","fileCount":820,"integrity":"sha512-PGPysIx1Bl6keeHhiiP8I3OSCi7ls1YaEdcxNkgkJqGsINGnGIrqlTchtr7mGIFPDC+9sVLpPADB4IyFqTA75Q==","signatures":[{"sig":"MEUCIAQnM8ZTm6/GFERInepBje5PPJ7GBcj2NHXSa9r+bZmPAiEAoIaXwThiAMuQEi3zZXdQMjnW2FPrdgT8J1aEgG5JUSw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1110864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpN4aCRA9TVsSAnZWagAAUu4P/3IFG/AWZKXeCT639weB\n2ZOoolmdfu3RW3EMPSCYRCRw4v0Y2382zQTZBnfHOZIcWod5HLeLhEHINcfD\n25ACKkfK2kmTctK+icEllhLPawO71ddRA6QlpJlatjKjNIPdp+UwpwIOKHku\ngVKAxPhGCXp60TYGfuMx3hqRYcloWyKutnaAt2WncSJsbDFWBac8IgccfVgc\nPVDR78iwIZ4RZ6lQAJpzm0QWuq52qZum+zjwJa4UnL7LRJr5uLyzDpGtShyD\nTsi5nz/pKZi1ZRsX4Yqfbt0McbQpYLxnfjTl6LES4TGbhHb58lD4PXuze5qQ\naDc0tDbaxc8eoLUX/wvBrtwcVnuyKy4KmfBo0TEJNHQbfo0h7+PQUIsDUrUZ\nsLNfL/9dHdlvU8F9g/YpZsEWOq87NEN6zn6ystRqst8JLmr/RN5HEct9vnKJ\n1SMt6MpMNpL87G7oYHfUDSEY/s51paIqd41QMa6pu8x0f86l3aSS2YCGeMJ+\naBxzyPPR47Z2M2hmGqmd1kQ52Gk6+mOxvMdN9z8L+dn5HmsT0LiP3jYWrWPS\nD0ZGKro1h/Ll3auC8L015lJpS8pdGBm9/fAaY4CNVLusmpfu2tkp/xdLMtsG\nVTIlNwe0I9dcFnoBsJRjjsoSRsSbI/9GAvwtaV0suw47yQVGGEsPiwufvsk7\n3OrG\r\n=cUfR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"279e2aae1cdb65ca48e55b04c3784374cbe824ec","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-279e2a-kova2m4x_1621417497996_0.3160403981433999","host":"s3://npm-registry-packages"}},"1.3.5-feature-40e3f1-kova8shz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-40e3f1-kova8shz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-40e3f1-kova8shz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7e9e09b08ba40a8b48f28c58110592b43126f862","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-40e3f1-kova8shz.tgz","fileCount":820,"integrity":"sha512-EYVmghAqh6XrFUhnBgG5AWGLL75rdnrKeQzHEraakjIfPVOKgevMnU02yPORqGCIZUCTLl3/B73V6hxoK/69qw==","signatures":[{"sig":"MEUCID1p8Rt22d6EV2uM7FjA37n/LEKgycukSG+nSBOMwsFBAiEA7dO4HdZHk6uoCyvmAvP4u7qZnrgjcVF5SP51qhTtbFE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1111180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpN9MCRA9TVsSAnZWagAAibcP/iEnqz9t7UJgHILhJtIu\ndMIz4JhqpY0U4Eh8ZgRSBZV0LpXlvdawv7UyACdWYCBfoatKyw6uQVjAjeh1\nUenBXeaZChGHarvXKlLrW1sv9Cz0j+l/GSbkSU7lSpGXkACP5WIEOB/y0vRw\nPT5IoxLR0Xzu9VnuQAGviW1Ap2XfqFn1pFactGxaV0aycurqyG8GcP6qQC7G\nvZZ64uE+w/pqLaDxR2zokPikeYR+Iw+b7NuVus/YbfvmCe4JnhNH3Pg1xqhW\nd+OWLhMkgyW6wH2luaVHHaVk8799gD5eIWhrXquvM9RHBH1XTyT7xliHA4Uz\n+kKZm7miHGO5YoDUkVfity18vac7crZnnqGfVPAaMyxDNWjjjgRs4/0DWZ3Q\nHX3yDPNRabYMN39cD0RQWjerV9CLvYRbxJok3hzfE7h086EH7hf40b5zX9XN\nBf9o4FRPY21kJWoQ9XPtU3ZIt+TazTfUHaLVRtch3JgyFFaCDKSSWaXzivld\nU9yNXyqb6lVOzB79p4a1OZDTeGduK8OoannEa+0OfUfEE/kMzjS/eGAHeajM\n9N5GzjnMFTxBtVgusAsULserHGp46NJqXuqY2PFPmm0Z0kaSSRlUdT495BDS\n1Nn8xooZXvNyr1XeslM9X0WRhshIiedHW6AfgszT2Zfmr3wsb2uT5uvHUHOw\nSr55\r\n=fEat\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"40e3f159ced1f91392f37b68160a9e0ec1f8ec11","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-40e3f1-kova8shz_1621417803644_0.569542160087247","host":"s3://npm-registry-packages"}},"1.3.5-feature-39315c-kovb6esv":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.5-feature-39315c-kovb6esv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.5-feature-39315c-kovb6esv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ca24435e05385b842fbc72794aa8f606f8edcb08","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.5-feature-39315c-kovb6esv.tgz","fileCount":820,"integrity":"sha512-3XR6Wu/EUwoDQbX/V94ZPndwN6WpMC5TZf5wpKw4/zETBB1I8Oo4tfvuyIV2Cg+GJU0NcEUV6E0FaIEDvpTm1A==","signatures":[{"sig":"MEYCIQCCOYX0K/VVFGpNL4Vj1o5YxdCsRzacyyf6HXTF2SEinQIhAPrJuLUVbPzxpDTf2MQYbkjtKPfRYWiSc8SKCOC1RK1g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1111606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpOVjCRA9TVsSAnZWagAAUnwP/1fAjN9EC3mcXSrCeR4H\neElHQ6JSagth4+qgn5OcySsmzVcHxBizT9jRwrW6yEiBM0uQ2qS0aFQsjMYH\ng+Xl2KynKAstVQVet4mz2V1uQsFxum7i2u1ChNj/F0+de8b7YPxr3/vyGT1f\nXIeVoeP0vDRZU07cPYHRFHxVCW19cdXdNHzhYVvVSJO+q5nsq1Nuaf/15pJS\nrBZbtOAKB3/qnUhjTZuNeSja/Ipui2FlqoxLL1HFR94v0cHqMEU4Gq+smw6f\nlC+J8+ZrYi8qSS9M1jeJRLCYC3L4GIe1Nx2LutpRoFvqWTWfLITxnAIrSDDJ\nHd7IF4A9EcWXPXYwHoOgUL0dD7Z+ojn+j54j6G3r+lsUnCVTlMZKfiXOJGkC\nGxR4xKwY9YpKxUjPxbnwG2ei+PUYASPcw7ZyzG5ruER2g3oF9GS5BF3OaqcA\nCr7go7xwfwkfjKo0eeJuFDxxX0ZMCF+O5zeFt/UjmoCJ9kDYu5yxrHLuwqvD\ndFklMx57zoLqfFVy9EhHaEZiyI9ExVkH4FkBYSmjwK+U+ozgCRcrruXktXJm\nuVdmsbWHeJYCWLWoxGXg62oKHz0BbRtkpokEH4JHLRWAchEdmy1ocK/q2doa\nz4gn8S9T9ke5wLq1fLvjgPZys4tnuIKn+OJrYlGNed2OQxrEoVMWuNXP9uJZ\nq3Fc\r\n=DOQN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"39315ca1b2f10ef012b3eb742b10b88d93e77107","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.5-feature-39315c-kovb6esv_1621419362576_0.08755109700563235","host":"s3://npm-registry-packages"}},"1.3.6-hotfixes-bc7d04-kovj684h":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-hotfixes-bc7d04-kovj684h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-hotfixes-bc7d04-kovj684h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"83a44b2c2900123bc19507977d003196dcdc2f0b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-hotfixes-bc7d04-kovj684h.tgz","fileCount":15,"integrity":"sha512-4c3EiOJgJDlwFJnKp7AJugVDfAnctrb6Wj826WGenWfdDceFF9QmtGB0cDi9/LgbU9ZIsgSD3sETx1SQDz/d5g==","signatures":[{"sig":"MEYCIQDjWkqKI5/534m7iob33GlWSTD0rv1SQTxSNGDBUb+m2QIhANJdgYX5UgInuIgPmCqoHZmsgAkTmmckeRjWbBC5IdC4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpRnACRA9TVsSAnZWagAAI70P/jYh1etadsi7n0pTMAzc\ny6lBrozZnmTaVLssDmclAHudzyQVNQKrS+EfKFSNzlxCPqpltSiUB4FNI0CK\nBGAjMC6YnaQlDUzpwwZmee5OHSLeAaJRiZ3l+3Wbna75Db6AnfgLljCeJ8Ej\nUeI9pO98bShTFd1WNEhY8SDy4C9vlK8PBTWtLG9fbEzMERpRb44J9CwXNxGK\ng0d+Oxk1+33pI8HARGvZNeWQjVTmJ2NKmM0OEtG77QWdrJcKJnxDhOsx+XEb\nCeycoOlCqRJcPVeAdUE3y8q658wVdYEyS8SpunYB9bgAPmszuvlcl1ZIasWx\nXa9xZSq9K3uZ8DoXIaMTDJc44PDT1HNQkXZvt6ccnAFFbitw4QkLZlgxd9P0\ni+0zLzvAknevgB/GMO1OiXnvO/YSnyHT12DyfFhbQOre72Vpuc/OxLw+FWKD\nLhEkKJbVr7SpDrPZbbGmY98s7JbhoKtHJ40ArzpVqiUT62NEolGsmyBg4Ggb\nJ5l7xLT5RK5uRxlw919srgx0aAWiX7W/yQiYISMKHvn3+EnXcIr4E3o0JFtG\n3esoGNaM0WAbM2kADjJoF2yo7OoaBHMx8hFzYDMZtpOHFPzNul8xx5+Te3vY\nj+xpcKHoZAUX09kLuH8XUUL76UnR5yVQSovcft4qHQwLvsQupSIq67ys6zC0\ntqE6\r\n=D3eb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc7d047624bf2e012c3a8fd5c460bbab885e4ec9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-hotfixes-bc7d04-kovj684h_1621432767935_0.7234371950495724","host":"s3://npm-registry-packages"}},"1.3.6-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2b157a927e53361d126a78f194a12303dc43c5da","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-beta.1.tgz","fileCount":15,"integrity":"sha512-6PZ6hKfOScKQuWdVc0UN4SW5SS6a8TCZghggEwZFHhyxat84nYODUSdX3m6Yk8yGHZ4lUB/Mtm25IGKI+GmLbg==","signatures":[{"sig":"MEUCIQDWIHPMkAIlniAKuMIoFL8h809eon1xhrwhydFMDsdEKAIgRF5L/PujE8sAbNVdHb4ZFNqyE4mPJJ2PRdsSG7OEmSY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpRnJCRA9TVsSAnZWagAArj4QAJukqQ9xto2SBjom6ayj\nAlz5bPRs/CRrCY1akz+L1d1HyxnD/5eziiQoxojw2QZ4QZqEGferpKAO6oDC\nKbeFJ0FV+bYihnByOnHx/iXomcBCcnwFANI0Adc2NsZT9biusUuXLDH0Qp0h\nizxFrcTA1IX+Ej+eScIK7+hlEy9OCBlZh4vMsoParOc7PzguII8bCy7+AOpP\nSJZgi7vA2Eu2zya7+mlIUiYRlUbw+BHNiyBhriqk+T8yuYYmX8FrvjGQNlNJ\nOl4hn+BRgYgeyz0gRK77uq577yn0jewnGnquwOe2W4DnH8nlAcJ7bCyL3Aly\nDnax7P7iyr5mricXtcSxhvHBWtfispMogp6TlXMG252DyzlFDdf+xaqYGxL0\nKcyzIQ8uk76j8sygVrmRQ1a8QeyYSMVlN8cr/U1mIdQPZlk5S4p5x3Dqzphr\n1XecqCPDkb1RClVOEbjgtMquMGtHmAu/Q4bZ8M3cnErwVNtM4CNriIl9c8/g\nI3G6faNchXhVn+wuDsJlV0HbPifzlGZd2b73ztYrQsvj30j1f7OBoenWs8QA\nejXrPjWtbx/0+w0HUPMH1U8Ma8UcagLlFtf+vBi1fOd/AuQVLm9ZYwKlV8dp\nZAMkmiGVuX3PKhTlPdw0JRP74YqmazpNqcwqVkJU2wpC4HOx/8PPuYDCE1GF\nRoi1\r\n=XQNJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9d4123d2c1c111f0aade3c857afa676bd8977968","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-beta.1_1621432776538_0.5250773235419979","host":"s3://npm-registry-packages"}},"1.3.6-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f157dd72ce3a55ee65c17a3c4662fa0fd4a1abb4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-alpha.1.tgz","fileCount":15,"integrity":"sha512-4XNgK3fk2W2cNCyW09PX7n1ZFo8B1BWJ7MtMtpreHlCmy5TMnEW+gv45AktgYzdKFlgmqDDbu2hB6E90wZIGuA==","signatures":[{"sig":"MEUCIQDBeqBHKGUEbednCgEA4GR9bK9m/LbB66poQahMVRIC0wIgC4hB09Y414kJx+/5Ty14w4Lg+96+4gErxymrn4QS3BQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpRniCRA9TVsSAnZWagAAhBYP/2BfG8KRqCnM0A9ekBQd\nsa8xtGqIrCLWDMr/j+3OQkHhmwpXK+NDhusL6atV+tX3/fUr6qFrggQhFK73\nz3iLC7w/kLztQ4ovCLV4nhYUNpmw7QUjmdr8bh+R+Wep53aaMRXTG1JSYZE9\nvDrDtlClmQ1mN68y3MoZ4+bYaHwwgsdGFFFGGcjI10vswa9yMX7HcmsN/t/E\nNoeOkxCu0VsC47u2vuWB1XgBwioMsSdzk6hyND60vGJGTPixGKVDxZpjpM8o\n+CCDP42jgHx+9dMDw6WkR9RpvXTMbTm3y50046R/KQxiMyOIfEgjanFBzr7S\nB+hvcinxrNQQtk10/RZSL0++k0UBd7ofurCAoSB1uf2C3t1hniTgXFb/HDZQ\nz+UQ1lkMZuREHix4r3cNHzriJR30+kORJ7IyGrxhorIxNzoWmBpUFV89jyjH\noQBUoKm0FTOknPCaL7zfdFPZcBX7WqowZqoRcPNsJRkM2ftSRkzsNRjcr/Ec\n+87LhXlNhnnKIWCTWZJw1/pDmW6hDep09YkiA2u9KinQBa+8ORFfVpP2/dE4\nLnVrhJrICMJk+zl1mbs2zGNRVbcvfQC+HUYwXgMPlfD/SaK0hDC0Ub5qL68F\np1VPCVKa5saHCrzMCH9zcOWh9gjXukx6Yjqbgp1baAJB4oA0d3IRPZHEwH2h\nI+jk\r\n=mlTd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ca69f9e1ce5d344d2d4fb7c965edc135f0950383","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-alpha.1_1621432802290_0.7622801928929086","host":"s3://npm-registry-packages"}},"1.3.6-feature-4b5ba8-kovkaa5q":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-4b5ba8-kovkaa5q","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-4b5ba8-kovkaa5q","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eebe2c1b9cb6bb4accafb57b007562d5bf442fc2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-4b5ba8-kovkaa5q.tgz","fileCount":820,"integrity":"sha512-D6F2gBjbHt0gTv9DHz4VClJqmO2oUMhThKTny/KBRu5eNvPqTUUo1VA/YAXb5NZU9Ne3qBxSJifEX9fNeHWQGg==","signatures":[{"sig":"MEUCIBZkN8OLvDVJRYtzG6pcQNjrzLOURws/AnLtqsoLQR9UAiEAr6Dsf7+ZCN/e8A8GBLVedThrBYgw1rg8LW3OJ0JY4vE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1112196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpSEmCRA9TVsSAnZWagAAlScQAILaNdQHvRk6/olfw+dz\ngaH60hF8wZ55meVo/t5tWQOkPO/hZ+ed2SGhprk7lCUaHJX+xDJDomQ7rMWN\n3IHt5q2DAnSdMaQTqbzVhIpB8tfiShmkZM423gOAHQUb0gWGwYDJOm22q64e\nUBw+iJNpKvhzDAMmZEPD0je3ugrW2nou0fFixEyNvVux/EOQF87XqQsvFYnz\nslGFLiVH6f0w7KZhCqS1zvJiM4cWWSHXqFiejUgWIceUeIkN1yRORh8qimox\nuhJZlz1heMkK2GgJoQdWJCDg9bGpa+lX8H0+CRGky43ignSW8fco/bzoMa7P\nVh11lmqPTpP4lI7axguJ0rOmdUzalgtYyFPJtFAgbMlS+GZQob/iF+4DGaSQ\n28/qJo0wFkTWtpNfEZEEKBfveaXifDIskoPZ2T7WE9nL0Jy2gA9VHMXmWyHZ\n3ddsXP/7EuuZJ8jAb/ok46TMyrzBXhb+MZWvg3j7E+AT2SqrgXTgSA5oNTrj\nXFotCUxkMFFaHIOoYxPh9ErSxcTjBYRrLr6mRbRylKvOa3QXKXJB7tvXBzdS\nTEDkRjbwvHpe0NYz6pZNqO0CgTsnOI6QlGwxNm2qMKuntS51FCFM+EO0/l+g\nlLFPyRl1alGo78UCgXEUjbg5pzakOqELTCTW1WIAOkqIXUWXUtQaJk5b39wP\nl/E9\r\n=AG5g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4b5ba8fd1665ff7faba0086bd200a8a9e15b55cf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-4b5ba8-kovkaa5q_1621434661401_0.9888701985730861","host":"s3://npm-registry-packages"}},"1.3.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ab04a216c5c00449d37394ac4cdee400d054c427","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6.tgz","fileCount":15,"integrity":"sha512-/0bNilWfH8cPcfNPYDsAY1j5XQy/t+yt4PdGtiIDMbZBl6ULgxI/WKsKk9ijgT/Fs4j2KpwqTWxQElIN1APt2w==","signatures":[{"sig":"MEUCIQCULC5h1pDiQymN7yNV+rW8JdLX0J9R2pvz8e6kipXgzQIgdCkNs02tFRybBTjrVQQ30BCcyEN3o06P4N4VukkIc7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpSMmCRA9TVsSAnZWagAABVQQAIYzlcHTkq+7DVe4xFW2\nWdyCFVLW6KJnvkW998CP5FpbIsJnTevADxlPISx7OpvKb8p5TYtNjDA3JLgD\nIPwn+ci7jW+6dppEq9s+WAKObXj3uc5J4bxQS5zGke0bCDT9IvSD5Gdn6fPY\non+0S/ZmCv2pAQO0WEig82Y4NxbN0utQoP4CbHTB2jPCUxeF51gjllBKoefO\nE7EdsvAoan/rjN7YXKonnY9NLtAMKukv6qraJnaFjfXNE0aennMHMuLL8kiN\nSYrOIP1r4uR8Dyz+fCkwMc/Q+pzTF8H3isbohgo+hq5NfXv+8z+DPI28kzSP\nGRqgMrPAXkkMdW+dTHXT5BiHIONnlaQjYQfXKUfM8F9qoSsE1KmEMKM/BjXC\nIgcssfJNam6U6Nhkcdt3moX9uPtQoL9yduqeUjn96NZRJu3JmEvtCZKrwvkx\nMKaQifv4FlV8MlohQU4wYjkXGYflPll+xeTQIiwWGkbP5BLB2KcszbUerdub\nE7RlDnG1BwjQ8PmlqEGIOipicafhGsdufS6TWrSa4AK9W4QWyH0RfjF87RHP\nRLjR29tJ1mzIG8IVyqvijhIFHbwHeYrqXWcXhwGtVlLPO1KMs4pNKKPyEGJk\nEyM/W9NjezeU4h8mY8DvxOieu/IvkDYIL/Pqy0ISRsQKKVcOQoI6ol/MsY8H\n9AjX\r\n=LvIW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"bc7d047624bf2e012c3a8fd5c460bbab885e4ec9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.4","@atlas-engine/persistence.contracts":"1.4.5"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6_1621435173850_0.09002044167103995","host":"s3://npm-registry-packages"}},"1.3.6-feature-5242f7-kovn99a6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-5242f7-kovn99a6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-5242f7-kovn99a6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1a3b2876ba1afefa321bf141ff164f5c00e0ed60","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-5242f7-kovn99a6.tgz","fileCount":820,"integrity":"sha512-oJRinCP+IHduYfD3su8sld3oIMRFuFdK1rcT3lpGUOuKN9ilnD9ssomT7/V1ma3egaRSqVeMPvRaE+KjbVcOBg==","signatures":[{"sig":"MEQCIDX5Blv7UepIV564TbCkZDlzqjCVXW/Teq4boIt8IecGAiBfCRhl2TL8+p1xsA2BFnY2CiLkPG3NhZQgLz4jZLazsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1112189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpTSoCRA9TVsSAnZWagAA9EkP+wb7EY7JWNGDayKq6wQE\nDdeB3gucUtjr4wzfDUtuASfJRcuiOKPCKdRU6KYsYVrDFe4rHDPH/+pRodwH\n3w2FxDPSXA811vtoAywXZoqSyk93y4hbgWIRdS+jCfNkUvtLY8ynajfiymR2\neMwG74f98PBQ6JmnV1ay2pmADPtw9fMH2OroHfsWVODtQg+us4qwvth2kDS9\n1+QxdS6KpIZBzZOXKzZdg71M058LAWQsotn2q2yxr8IVVLowfs1pyC0pR62B\nfwCwGeJIK4csD89fp9SUXPJjZEf8PDyBVa9eLmaICV/v9QIg/nrhhnP1W0o3\n6h5URYibQkPhNfIf46qHQPpMwPj1WOMXewz17K5cAp23RWh31BW9o8pz2C2t\naYc5y+RKD9AHpepvwSxRlAoQjqOUw13QHWTwHCuf6hl6kHE54IvCN3yqmgpc\ntr3qS6a5BKwLEzo45lhog4D2/d1CE6aknT6pLdDlvXzrigtbyl7fUTlEcsQv\neyonFkG39hOnH1CdQHO0m/X59rui6usnVi7ylIIg0mwYenMK48TmF4ZUi+Li\nMCTSyWJG5D5FX23cyEnF4WCiQNGV2F9JA3lDpBx1jPtqiARuejdoKKHHo0hG\nM7IUeOi6AUUj5gkCoDDjbXDXv5i4QhVAJiDyEHh12PJjQ9lzv78YbuEXKT5X\nGPnl\r\n=haSX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5242f7fb11b08f94d8c6a1fdfdfb838368b2332b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-5242f7-kovn99a6_1621439656057_0.9623080781004305","host":"s3://npm-registry-packages"}},"1.3.6-feature-cfece4-kovntp0a":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-cfece4-kovntp0a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-cfece4-kovntp0a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b3ba73e48fe41be0bb984bc2314a12eda874d713","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-cfece4-kovntp0a.tgz","fileCount":820,"integrity":"sha512-sClZO9tC4r3BPfL916Xr9uPw9HBBCk5mmPYn+Fhkbq+gOUdtBfAiIRl2V0fec44jTliPgZhFavCaCpyos7Im7Q==","signatures":[{"sig":"MEUCIQCXjJoTaRMzfAlt/919P9N/sBg0AbUP8TJ4Fk46cIOcUgIgUmAbu8r5bKrBO7mSX0uXLyupoBXnHMg7eg7Y2IXf/ug=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1112180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpTiACRA9TVsSAnZWagAA4PgP/3Iks1vi6IC7cAB7bdSp\ngJDJUBDDMuCRyh7BmPca8RQ0wXPuVhSx6B3n/Kjml1XYiRRRxy5dQ9lP9ZaD\nGV7aYvUEyBLMmf/5nBxh+nDo4h6urbXX2OZxPGXguGf4WuTkD9PlibSSVueI\nuXlM9aRc13qImuxWC5lRi4wwV+952Qk7+59AuqfaIZuxEexHUVbPwEDpa4vm\nted5H7F0hbl8AtW5QsXN5RAdd9OfAIxXX6GOntoshFIssW3NkBcjPT+Vr37+\nuajTp/cF2eDhoYbh9i9+inF/MLNqqO+u5MkCLZ015LtHDMk3mxeUvKcl4FXq\nHJMC3ytKs3fa/Rm+KoRUyPmCcm/KP9HbvjdrcdWgi+8r/nO8kEJBmtDa6oGx\nB1Er0iLR4IBsDJFLt8Z/MpQZJK0SKaflifC4c/cBOOXKbXQnuNkOFegWU94U\nMvret4iomPICJ5s2+HE13WhbjWUKiKtW7/kjiWIWJvBH3xzDTgi+H7vKTIoF\nWuh2Ckv1Gvahz6nKn1/EmbF5HtKGrgMRpWnOPUw7uPQr0aYznCAef4rSfi+J\nUt/09VZsq7WwSF/93u9c3UwAY7Ycpi451z4PQAN2uVydjXlZ/hBoaRT87wzb\nQsvqEI4O1U9qOwIIYxS7vEuWJp8HFf4YXHzBd3A+0SVWLraieyXEUqSG5/H9\n2mBX\r\n=Rp7m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cfece4af70bfdc931098d935e6dd6a1646d4240b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-cfece4-kovntp0a_1621440639513_0.793750671004364","host":"s3://npm-registry-packages"}},"1.3.6-feature-fb36c7-koy85346":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-fb36c7-koy85346","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-fb36c7-koy85346","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e644244ab6ba6834258ec336a3b25a785b6caae3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-fb36c7-koy85346.tgz","fileCount":885,"integrity":"sha512-wCc3FXN32NSwsSLoZXNbVEcLI0+i7cfS/l5SWghhYB5+isFM0pT9Md4fW8qCvKyJpkCDG+FhIqqrhdTJtINWxw==","signatures":[{"sig":"MEYCIQCIZI6PRaeY/16Jjw0rlz5TWHRi7FIlqxNDuDvawBn/qQIhAJHIQNF0CG0sZqqIkbzLfPVrMuyxn/02/e87xWlAdpJv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1164032,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgp5YnCRA9TVsSAnZWagAAge4P/1bRP5K3uhUti5FsDGgn\n/fKS21wJH4pmJqKDgd3BWYgtLTR7EPAE/Xno4eCGyTzYiAs/jxaCPJvs4iyt\nokgN69gyyGEpDF5b5RW1U4tU7TrNbfoHfNF/r3jz0x1Sv4BWtdnyBxZoOVwn\n3h83R2EycsWmRJoFSHfv+fpiRBivELa+3EMJqWTftX5JJIk6GuiTB91InMPa\nCqvSMowwN1H3ZDNn3OivihnLHVYzSZN4kuKdkR9noopXcw3R+eucFU7J8KV3\n5u2C/PUIefhE7lBB7vUJmVQ/U9dr3fLp3GdPLNvYi8vferkqHXqyqYVpkvVG\nXLPQaxDtcN1NPdhPFPTRUhWQn6cn/O9tlhpRcngPYIstOIvC5/KzMvT4TWe+\nWL8aGItWa57z13mLxG3ifLKqud7Z1+NMjdhPW93hgX+8b7nzgE6jup9fPhJw\n21phckmnZtQVpmnwaABQ/j91qjQoh68C84eKfYpygak1difB9cIucMv4h0IW\nT4qzjhlmRCE3HPFLVb8XWcGleG6z3TQb/n1t3sLl5FqemvSQAsBYC1Q83h7s\nvvTlBuCA6lnQPPFYSgWaJk9OsRIkXeYLX90Pe8OVSb4Cq5ycntqHZP6voASZ\nPwRsmgW9wGitlZ0L+gIVqCl18xW+mG6VYgd4JBenmkgppUFXu9hfTnkgHCN2\nOiJU\r\n=n76y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fb36c71d0a70b1eafa662ffea632f8ee11e6a75a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-fb36c7-koy85346_1621595686873_0.4823258574737157","host":"s3://npm-registry-packages"}},"1.3.7-feature-b89afa-kp4412yz":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7-feature-b89afa-kp4412yz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7-feature-b89afa-kp4412yz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ac23a81f787dbe83955441913a8402d8eb3eff8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7-feature-b89afa-kp4412yz.tgz","fileCount":15,"integrity":"sha512-qJjawW2VPDEwfWJWulUeuLeZSC4yXVyt6eUlAkMVLueIXeUNwDaOdIVN7EIb3d3JVzIvzcQy+S806kbz0uj3KQ==","signatures":[{"sig":"MEYCIQDUBMr3SG9vuVzVsYhcO0et3dEk9gPPumCgPNJTcuar7AIhAI0mkOlhJuNx6ORkMPTlK4i9srzvaTJgkL41DdyNsRKK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrQQlCRA9TVsSAnZWagAACOUQAIDGiQen9ywD6e/qZaou\n5EnbeIe2COpy8oCTmSIq4HOYiOAXswvinfoSc0RXCQLuHW8vTtY6Hc+eN/dk\niYBwWnHegBjZ5yzt2KmHaltJthnomvhebG2QIHugR0XEt4PyNNJ1eDY64K2a\nr5H7E+RXKoM5FrB5hcA6DG+61I4K4SnPnXq9CCxO9BA+5QirBp5igJBJWNnv\ntraVQgsn4lwytMvOq4bReWyrVMKWmyLu64iOtaDtK3j6JGv3/cAynayggrMB\npJWN11EOTWp9p2HVfaH4aczY2L+vbCzkXHjpZlmxT5iNi9xCGPz0nF0IDH88\n2KDZQPcgnq8ekC7u67lpWOMnfsx0T7ZkfpJ9aQt3f7/qbBKGrW07I187muXN\n/cMnV0FoyEBLe2qfUgabLEIHDvn5GLiELonhGFWDlTEzQ4BTW42+GEKzSQUZ\nXJOT75MkQwA0Yja8AO7MdF1YTChl6QhCvB/B8sV/O7IqVMWqJfqxKi81eqpT\nZq9Bo5UK+QOW46zYqB/Ee3Q4zV+T9c2Jn3fifFK9OkJQeDQzcouxLzHicLi6\nh92cnSNG6wtYc05TiHX+HA0lnfRziKCAbxPjirCcetlezRofk1v1RpFZY8+e\nlu7mHhRAqg8XxZwwTyX9R82/X/L4d3vmIUJW92MAP6/KTxlIRGzu3EPNjrwZ\nSF/O\r\n=YHUd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b89afa44d45c45a111baa703a5af702d6bdaf36b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"feature~add_process_model_cache","@atlas-engine/persistence.contracts":"feature~add_process_model_cache"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7-feature-b89afa-kp4412yz_1621951524746_0.8072951653748663","host":"s3://npm-registry-packages"}},"1.3.6-feature-5d5a84-kp56xc60":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-5d5a84-kp56xc60","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-5d5a84-kp56xc60","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"55856a76c84f8bd08fde4575f5c63c75686763af","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-5d5a84-kp56xc60.tgz","fileCount":885,"integrity":"sha512-XuNLhiOwa8m2aPgRqSD46XEXsvXNSnHHlqywDJjTCJC5LhmgzKywt0HRech77Rm1Y2CxdUxrLDuQBN7tn18ccw==","signatures":[{"sig":"MEUCIQDnw4vgKvOLX4akQXsRFSpc39oZLgBFfgZsKyb+MP57sgIgOOrk7mQ2/9HCDUKuq/YVESXkXGFeMSFuViXRqCO+vB0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1164551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrgN6CRA9TVsSAnZWagAAiVUP/24/wISYBn2dLl4ACSXK\npMwHjj1/mMZIMCyb5dNCIP+DxsbEurIKn+cJW0cRXVthjd5RNpgHnQSX6+CD\neT4rzsnzpUJq4ZtKQiVoy6RPPnsEmucIIjOFM68dEJQwaiidRKFgfyQy2qmm\ntH23KxAczylcjT9kY++7C6Y8UeFmPQ8h9Scima9ILIjfW5uWzDRyzS9FOO9j\nHgBPjTZuKLdhmryNd9+V+N0YpN+VBbA8GKaBfa8pxAQEKcQBOIElgzU/gIbD\nKGJ0rEoYFjEK8CDeucI/6tq9NmJEN9fPA1Q5anH9OEZnh7K+elo37Q6bsbL0\njzSMlWdomhTCswmSTh2c6d0nYtJYY5H+/pTPC2X1Im5AuNz0WRPJJsiv6rw8\nooSrDkreFe99vtAWXRnIc1aCoJY1PGm2SQbJeVt/95vVEY9TW/4Ygr0R8XF1\nKzjk9cfeLVHqACaN7BQBI5hQjAYgDnTMj2CKnFDGAwDlFFrmk/Bdv8wNgQJv\nBsYaPRn6/9sNdUTQMhrAl7WPE9Lc5JBQ67lmZ7jGEsWjRkHTlHqi47h4AQiY\nco2tBe5Pt/POoAYxVY8YtHSp8gJHKV3eZkMByiDw7nIfrHaNnctERBQ6I/sl\nJ+zGFXB3dM5tNLiowis0xRgiUCswiOQ7Tt0wgsGk/k2bAyFKcErjtVA+YjsN\nrivN\r\n=MwzV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5d5a8404f2c353bd78a25bad43df96d80383523f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"express":"^4.17.1","socket.io":"^2.4.1","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-5d5a84-kp56xc60_1622016890122_0.836990724485537","host":"s3://npm-registry-packages"}},"1.3.6-feature-eff13b-kp57qlgs":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-eff13b-kp57qlgs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-eff13b-kp57qlgs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1e256c3220b17266fb105c263e5f419cfe3504b2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-eff13b-kp57qlgs.tgz","fileCount":885,"integrity":"sha512-s7oF5nAiSDFb8T7xIVIwRqMoiVS8vjRcuRasSiRPzCnNrVWvAjfA4i0Rr2M9DtDxTBjgK4OXOxVl0t16RM71tA==","signatures":[{"sig":"MEUCIQDZQFnyEuQuVHDt/w92HAsvet8DYadQTXExyFHAWANmUgIgItYusJBPgPTLWWnweOPQJFfCV9OcOLZ/rcNDTO3L4q0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1159323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrgjUCRA9TVsSAnZWagAAqtYP/2yGGEbq3PmTFJKydZF+\nHerbcNukLK2Yz0OxPlJAcBzFSuMfn2U3cl4t2kTz7dW63FlLjIJ5V41yILjJ\n4n5s1kcE8i2prpbeqPjjNha0aOyl+L1mqYhuBNt2G2AGVZzOltCr35zSzdMD\nhZZIMhpP2gECyV60VqHedHUTNMHbdS+FuivM8PEGXmRTjksVDFU1bh4dAeGP\ngwq7zl3JKDpm5triho+AwQyYWxt693ErOgpN0H4McIQ4/COVjmK1P5imOKdv\npaMJi54gEjyHGZTnmAXzu7uo62zQFIlcqJlBjeJg1Nv0erqnDIQeqx26f7Ee\nwJdMc2rCCKAKhYetMJcKRP4R27y+WbILEBH1vOpKRJhZDUYePTvLoxJ9B+sR\nANjmgpEYMkVDoiGzFUOUbAKcdrCujmaOcGBnppFKi77oibq/9ZakLDjbfAU7\nDO9Wfh9Be/OJZDZRG1SJ06Yjwh0h23kjR0/8Lqk7JPDuAq//HkkM4RbAmtHP\nXpbWiA3fqh6llRxE7UWT2c7oe382zZqCKs4QFAcjcuZEhSELKWtiYeMSiG4k\nfEKl4mbrFXnpdOQKEcAjakwgWqmJzjdI4o/i9eTr2VeMkVSUj3/C+iYzYGM9\nezQxG63q7lSdH/ejybpsZi3ztYWoN+A7FjkC89+VYxbiW5WfJKILvOn8mZ13\nLwCz\r\n=C0l7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eff13bdcb6c72d34da77c3be741f415029489de4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"express":"^4.17.1","socket.io":"^2.4.1","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-eff13b-kp57qlgs_1622018259572_0.7938070914805808","host":"s3://npm-registry-packages"}},"1.3.6-feature-b17a1c-kp5dpciy":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-b17a1c-kp5dpciy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-b17a1c-kp5dpciy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3dc422a990f77dbafb7801063ee699b326b97e4e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-b17a1c-kp5dpciy.tgz","fileCount":885,"integrity":"sha512-Y9uu8Pe1sG/9LvPYD/CAa9KHKWNUqcJQEh4K/XURurNPGlLWS+F1gFc4J+Kk/rJsf13eF1+Gwbr2BkuWfqI15g==","signatures":[{"sig":"MEQCIFfDN6ch0MXp1AdP1xci6tNPbX8J4G2RnqsGkL6wZUW3AiAgj6VN++deR0bxnaaslBACTiKVvD/mXzkqXOTdf3BPwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1158778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgri/wCRA9TVsSAnZWagAAIU8P+wcIZ49nS+I+DQjaXOYM\nbcxEongbCPt9W50jC6eOATqFT4K+NWv1QqBjgzRJhr2cfPXVUjEyArP0hr0A\nntPkHhKrkzUr3Zo8SCzJOZfYsWPrtNh7YHLNy9cbtnwnRBYBPbFE5BeNU2II\neZAW4sdOsaD6bOvTRaa+dwp0ErBor27gTVf8pY1ZWOO0CFXJ154ue0s7TrTD\nfS+amt9N28egSQ/WZqjbuBahBQ5yRbP9VyIuizirO2WBkmbOPrNshd9vvX28\nd9uYWLitwjHp9aPbrghbnDIs1GJBA8eoV+bND4Z6uGLWEF2SPE0akX7JNuQv\nJQy5u9fTxN/yznUMDEUiKHQi41tZhNYH6DXXHiTiJsqCVbYXxriGLmtTqoNZ\nNDSrFv3XU6lJ3a86LsgZTzktIUGBZ/0ET6hIUCMHnMrV/W2FXD4W+OzFkYir\n1rEsPfvg5KBU9lp2gE4SFMmgXz5+16CqvFQ/nn0GvEIAOMbHBt1B3ZAR1w1F\nUhUgyvrJvALWnBa9RKvm3xe02tBZ5AyBL2ID1AS1JgnDzYq+ZRY2DS5BSJxS\njevaW4WB5KEOKdKpSC2RJT9pcZ+jzYjA1ObiYEarluWUIN0ce2YgpA6l7qa8\nU/umTTnlRPMT1rgfmj47aUyvpf2vGQzbvRjrt4sCBIQdu95yVtnrowHNCugB\nFVq6\r\n=6pbk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b17a1c4bb57cade4d1c7de16a0bdbe699531c3bf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"express":"^4.17.1","socket.io":"^2.4.1","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-b17a1c-kp5dpciy_1622028272202_0.8583235345214402","host":"s3://npm-registry-packages"}},"1.3.6-feature-091812-kp5i758q":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-091812-kp5i758q","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-091812-kp5i758q","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"791f7ba8b7d364fc7570a61f73051cb15b2a7ae6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-091812-kp5i758q.tgz","fileCount":885,"integrity":"sha512-8zP1S4HxhVycvq1ADbAIF7Y3EW0qes33HNyAsl+v+V+Bmf3jcX8A4XSVcmT1MMdO7+zXoqQJotnSwzuLafnMOA==","signatures":[{"sig":"MEUCIGPPGfSgO/LpVfOJWm4S90iEVqFe1cR/LlNW2XOcHzW0AiEAz0aCNHneDUlhVCLS74I2Z+PF9Syo2BlVkKNnlHo20Dk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1158793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrk1mCRA9TVsSAnZWagAAINUP+gJpZW2J/G1zyZBZYDrO\nJEllz1iRG7xrRtyEkyjnX2DyX0ghgaWhWxAO3Oyj4WGgu7/rAssmlo+ShnLG\nfPAXbBA54g/1jWBbU66Vznw48W1PXK5Il028GCa9sTgHV+ToY4tFH+OZuCX9\n3xr2qpec4ncMxSU0TJA/1dZmdqTv5MKK86ji8Isea04iqIbFeIxMRD1jx4E5\nd0NUtm8wWMBfTlvGVa1hbsnaVlsg+tToJaiySAiFQx1qoN++BpPBFjJFE5xs\nQZyaC84D50UVQ8Po5RpPznvvDjljqVZdzFDL7if7xJy/psbJnravEoYL6ftu\nWsfQDHdQ3wdboawb9vVX33jRAQ9BnCyxxbRVV6iQMCiYPd6C4PjX6MvBL5ic\nrEc/8USl2g+7/UHspyzTjm9ObzqNJwcgwLR3VkHC0rMCudMmXCo2QLcSRT+F\nPNClR8YEZuKKUJgJxfKJ30hnVQFQv7AuRTLi8mSwBuZKcZnHVsB9k5quwd48\nQ8ZsoUej8h2U1NmN8C0RRi+G3rVuIGBKtykdnrBP11kjzzHstz4yiL/8BNO1\nmNUaproF0hBK+HgMSVNgCflOHjWhShS6fM35Ho8PCgbUJJmnHxXhZ4hwPdra\n5kMrmR59TNggIS6sODk5k9U8Qih0fCpHL1KtgTsrJCDA90nyejlvPKbnBTQm\noFKy\r\n=5dln\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"09181292e1a834a57ebe4056ecc2609fc705b212","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-091812-kp5i758q_1622035814069_0.5054976839361394","host":"s3://npm-registry-packages"}},"1.3.6-feature-bc0e55-kp5lj5vl":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-bc0e55-kp5lj5vl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-bc0e55-kp5lj5vl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"79e332331d30ef9bc07bbaabfdb0e875c2a668b6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-bc0e55-kp5lj5vl.tgz","fileCount":825,"integrity":"sha512-z+ftSByo5F9sOiQUd5idJHGQP2HxjhAwpZFpRVa/H433mPBLKIQhxSIzvXFcErh3WsTkK06hqE/xuq+y9HW+Uw==","signatures":[{"sig":"MEYCIQD4dQUjjgATKTnxvgjlnHA7WKB/Vw8uTIRwj4lDK7+tgQIhAP4SQxMVa2wiymzwZ/DUVvwQUa+KfxhGGbmpj50MBkR9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1108909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrmNECRA9TVsSAnZWagAALHUP/1vBw+qUzON78mljjfuV\nC/W2fzxv5akqS/XLyA/JicYnXogDHtxk7j8/NPz+Yk7unhFuBWaWGvYuWz5w\n+s4vUt6f6P9p5CX8HJYAmw09/aNCys9VRlY/4s5vE0IzyI1VO+CeqCu4wgSz\nUf+hq8vRlK8/cWq+mhDRdHQHQLdevveRFF1pT2oDRQrik5srW4PJ1linzyp4\nIthr7UpoScl7U9duZSX87UsdaQGTvPf50Gh+ubEWWm6JYhTNl5vPtEkA5Di+\njDi0S9MLlUrvnKF3EOp1ITujtEBHc3hHSFtK7lIj4E4UAuedTKZzyujUxbe/\nNsmBa2c7xScaIoMj3zmwMNyRBqxchPud+t+Tol6wriMInIXSUhZ8ZCcsjf+8\nmlzyeNrXNz8No5edof3A7pIR2pIY4yE9ZGAIqSvibMbdjqrqW4+8qxI/dKqh\n0LHppMAU/1nqFBEiPyVKoiQh2kmulICUVmUI3jWdc/osNUjtqwq73NwlQG0s\njg5CSzAeu3RfP656N/PISbtl+9jbSxIUKxm6LYbNxNdEdhlT2F6Roa6n6kQ/\n3TYdiWNwLmAaJK4fzPFdi/+pQi57dikyiFdFzucU40as82AoznEsFNYtREfv\nCHuY8mxwan14iE40xHE1RZmK5o/Ugt/uSY5PaQNSN2d5WjSN9MiF3eZ0KbJr\nzV8w\r\n=tb2Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc0e557f37334fcd699ae9c5bb9c226cb0d2f099","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-bc0e55-kp5lj5vl_1622041412481_0.5130338970028938","host":"s3://npm-registry-packages"}},"1.3.6-feature-51a6ce-kp5n730l":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.6-feature-51a6ce-kp5n730l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.6-feature-51a6ce-kp5n730l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dac3dfdc620423de01cc555451a8db022c334b8b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.6-feature-51a6ce-kp5n730l.tgz","fileCount":805,"integrity":"sha512-N+opuiiiPZWUXMPHeD9/qvwpBt93CShoWBCvNJZC+JRD/i8rU5jPwhZziduLhxFB3HinobLordmI0yZRid7KWw==","signatures":[{"sig":"MEUCIQC4/+Lk8roUZfWyIQMn41grCrp79foiwc3kzSOv/obCJQIgOSQ4aaWtOttlRts/TkOwDWdCtgAwzL9fmljubt1bEDI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1102318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrm4vCRA9TVsSAnZWagAADRgP/Rh7cON3l26jn9HY1HFe\nbZES33J3sKMjrJPNbXaEbvCC+z4W9VNyb1ewx24h8KDfc1hId1b637m4MuGa\n2fFNlCDfejFN+q/IOIMGqIXlwL3TCdX7IFwSokuVbVAcu4kToKhtXgkSCB8S\nHzIN/pboxn+RxD+CjltvtgxjOvM0guqsScfliJxyzioEKM3FHch4aViGRIx0\nR74mY6+/htVjjGMugHRWBC9+3G4AGMUYG36UQQSuOguoaueELjyYGiclr1Ep\n7HmXm6IJZ0Un7ElcnBTzZWOLXJiN3JvdY3uk/o8u8rFG3rGsEEJVeIuViOhT\nPNZs2tgRoxxKr1dREgovuygjHyQDTNLvWzngoaNd9QbTJO0jCoG9GNruAUbg\nYAknhazqMf/t6v6ZAdhg8BT+1ChLwD+ShlmrJCdjRMVnZyP21LeforysneY2\n+fNBn+8vcwhH69Opz0FsPd2RhfcJNmk8WFidmZZOZVcW64KhWUO2Df85cbjF\naTwJktiT+mBSLwXg1fRnMaoSs5PhfwHN6oT/X9321rU0cr0GhIEbeZYK55Ao\ncpLRmDK526zA7gGto3OIwkOZqPqgNrysQoilrTCd+ruPh/xMR0XhD2vsoNwX\ngodMmKV07vOu7/y1lMbBmbYOF1TzabVrcecAYGQ1rJm34m821t0u2x9bZGKB\nQDUh\r\n=zYjF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"51a6ceb3a5f10ab9c915ff157a02f3a09115bbda","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.6-feature-51a6ce-kp5n730l_1622044206683_0.4815090269479654","host":"s3://npm-registry-packages"}},"1.4.0-feature-93f330-kp5pkk67":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-feature-93f330-kp5pkk67","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-feature-93f330-kp5pkk67","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"941977d4359aca4a672c82c28c89e77dfa253777","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-feature-93f330-kp5pkk67.tgz","fileCount":805,"integrity":"sha512-QSAy9FJ5BRGCx//RbsWQUhprNJaMFNodMwywwQIrQClprtg2fI4QMbh1Z8wgEzLN4gOJ6WLEi8KdVaKrIicocA==","signatures":[{"sig":"MEUCIAogdcJiHXw0MoN07KH4Ds+9RIZ2SEmzMBtFqw4aJDAcAiEA403rOU+nlMlFtifagVtFoZP07CHJJC+XK1JtnfqFkoE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1102318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrn26CRA9TVsSAnZWagAAaBYQAI/0n2iRMvuaMjYPkQRM\ngNmC+lU43F4Ww3Rv5BS+EIx66BGJSnmyzdUjPlJAvKLWX6Y3CtacxUXcO3bI\nh3IHV34pgtYsseFUkAckUR0F6uCbtPVhSd143FV4Jo4fSfZyLj4ETEzrdy+5\nJcENiSC6tJ+QyiRx5MfsTbVSRJaMgc8R/kQ5G22HE8RzpK1Tq7FwHF0RVpOe\nA0GKVSSyis5DIMjkWGqT4+sXNP20rhekpjQ7vBNcAwjCrPHUmR/+xZ1CY49U\nYb3/FelCRqtXyqMJWAnBUHHF7pjs4ALGVJI7KNHtRYSCWfqtsNCal9dmjdC2\nUOPKmktWzrXsSpUJk6o3bx3T01EtLBpyqH8PDRVZnmprVfsqHpujEYNHB2HI\n7JL8cHPc7gUPcgXF2CYI/GVWGXhtUegePbkD93weipM2MCxINXMr4vUzm18X\nqzo7vJ0ElE6VXc7y0AoEs9HwYaxZTWEYszzetB5XrjaxWJqJ/x5QyOkuepBw\nGBsJdrOoBvKhv6g0dowDiealx9bMuvXrXGMS/6Ors+88u2eCO99CSg5LaagM\nuPMoPXeSmi5VY7GVNCas64FcOKbKzSvR6BIsPk81spzHiGtk91djhS6w9PbZ\nFOmatlrFDUaPMis33Cjp6s0/lq3XUQvM4im0tPJSQthfneg8Lyhj1MXxHK7m\nNNVP\r\n=WPf3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"93f3300aceb2eadbbbcac0470b458cadfe7013a5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-feature-93f330-kp5pkk67_1622048186515_0.5744192560166481","host":"s3://npm-registry-packages"}},"1.4.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.4.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.4.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bd71fddafe12651200b4b4999b64a2a0a6036d97","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.4.0-alpha.4.tgz","fileCount":801,"integrity":"sha512-SPuQ3IIlorMc/hACJsYt9w9xwngNoxDMSH0NT2obCKVn9PuQHqh9OwDF2u08Oe2PTJlZdueJ4U6AdBUiMDHnag==","signatures":[{"sig":"MEYCIQCeF3k7iTgatRgFOuqO9ZZMPP25Lzqf5DO0tnsZQw99HgIhAIpzoS7u+bKoBBloMFtA1TkmZ6aj90PKADeb31kpsBE4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":740925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgroBoCRA9TVsSAnZWagAAp54QAI9kDoEu7aChCk85P+XP\nbSOdXC16imbYVCJbZGKPOVfEDJw7IUmRIBpvFYhCAUBkg6+BWZ94kr/aWi+U\nnsu8vnd7tNBa0ag5MNU1pz3VsbsTNQw9+M20tm2cesF7S2oGUeTh2Eo9RRwJ\nChrZ1KmrRzymqrk2+AQaV9Cb1b7EtMg+7YlSUlzwLgpneTWfRyJ4lU51mLDz\nVBYhHU+yLZoERM5PZKaxB7kitlglF5eaUC2ovcA3ZKeZ1Ccvlt4pTvmlNrxj\nygofvsAKk1ZkZ3sDdMFFJAsFTFA/aAYn+F3HqF5yaYXmcUoHQMGqjCGQBbE7\nsUXmFMDMQ7Wpy8pOLAwQWdVi02SqlaUFkjAmQLAotU0j+yNIY+79exaBSPuz\n5/hVcas+epRgHpvOYuI447KnaN2QONoQBJR5n3PnOW2JVk4zAfJYVs0fmNXz\n7oEcfu0R1SZDU2qCHy9jRsfJmDL6J0d1S0/xFWDbChOltKPEFAR+StRmOlAJ\n/8VHpt3uj/5iPso5sLAZS67n/pjJWmAvywFg6LgYvlQdyyJDDpv4bPH00IM3\nCBzLtlNmVpfS0vRtflRae5YB90KvxqFgff4Az0hZkCl2JwODgBuyiYC+VLOy\nIn8bpgC1t5FuefpKU6QsiQe410kNrTk5jLhokHFwcZUEg4HHPCx3YoXvk26V\nRDP6\r\n=kdoi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c5d3eae6e021be6c9e9f36b7db1a777be5cca31a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"obivarg","email":"christian.werner@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.16.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"1.1.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"feature~mono-repo"},"peerDependencies":{"@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.4.0-alpha.4_1622048871946_0.19621793481707028","host":"s3://npm-registry-packages"}},"2.0.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4d5dfe0919addaecbfb4e34042d285b59bacc336","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.1.tgz","fileCount":805,"integrity":"sha512-3b8GnfGRlCh9ewq5zw+kEwEs1Qf48tBbupNCVdbmJa7dXgOxCsaGqt7j8V3emgK4KgtJxkhYh+nSGnrKQIpYhw==","signatures":[{"sig":"MEUCIHJvj6oGAWL+dEQw5xQ8zk6PdpMvMus0cPtOHa9FTUtKAiEAxHkOGMyJfQWfUT51e57ooTa/z+PcjG6XO5Q243LnvKM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1016202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsNXjCRA9TVsSAnZWagAAoWYP/ivs5AaPoFZOs3sLTarM\nrtJUt7sLoWuEp/bwWUDqoXndaVvWQtSgYEWwnuxwtOpQ+/dCbk2zZwN/f0YW\nwPKaDQcjvYcVgUT1FVQ9rEUh8JUtn03FrawDN5Ca+VV/Dx27kncsJyURrL/f\nC1iQzcd7yoSpcTSh8liSdLq/V/Gx32U8P6WzIZwvx59cAt7W6aI4FrWSyBnE\n6FE1TPKssnQTgWfJg+hVjKTfeMRrCE7Yz2Up9KgInedsMvtD9pahjiWC5boL\nmxjoghJsBTTD0s/9a/Q6C1HBsccNueFiTvq4SDNLFGULgzjVignwpmu98frb\nEMUYca5jdwseXjFRWnWYPb7USinfmp8hx6vFSRyNn6dMQHI6oVRbqE+Z0MRT\nYaih/BJjgCvnTWSXsBEJsDaEykdhVK4wdIFgpVt1kkYOFpy+HseTzwMMa992\nXxnlEJbzDUCmyDzRXHzIykTPj2+XMgvvdaCDMipFl+Sqhk52OlDwNTX3YQAU\nDzEEnugmt5/S7oFs39GTV2pGsuiss6hv9cru+0tuzNSrB8nAt72pHqIh3y+G\nH5R+pq8jfq0gmpqzB4JGH5bsZ+B0qmFfqhd58IIdI/DyyTigiAEyZjW1+xC1\nJT33IAu3uDx67etGZLv45ceoab5uh5Qk0wNgepC0AB+iwGE53vd7XU0ry06C\nWfkU\r\n=eqdT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f179aaee2f433ee679acfca178f81b27eb8331b1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"sequelize":"^5.22.3","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","sequelize-typescript":"^1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.1_1622201827091_0.28249277615742385","host":"s3://npm-registry-packages"}},"2.0.0-feature-ee03bc-kp89ql8p":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-ee03bc-kp89ql8p","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-ee03bc-kp89ql8p","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f68c4db7461eefaaa1d4125ad27c3d4c279f2c97","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-ee03bc-kp89ql8p.tgz","fileCount":805,"integrity":"sha512-BKBLYl04i6LO2mJC7EMCtzTZzW49eoWwmnIOXIDsv8hfCt/C9sLh/AmttByv9sq4JwbpRoGdxIBKq95ZfBq5HA==","signatures":[{"sig":"MEUCIQCwmCiXiHx1aT/e75bV5tbFZHh19ApC2mQZf1odu9r10gIgUHo4uv2dFf4RQZk6VxRJTvRtdFb/JMkZ6Dm5DNrllq4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1016363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsNppCRA9TVsSAnZWagAAb3YP/2/2b89PRT67Tp8tXid9\npduEDWdl2IuVJ0TMMcLBzEhoiqakLVNdHuFq4QY+ANGZMYWOJBSchiqQJfQ7\nw0xP5RxJhzbu7wEaNnsth0rOczmlOftcMT8qz06hSDzjSauxVf8Don7vqB+9\nAbxLE36DHEJ7Y+n2kECJkC9ql+FklUVaCX/+jNS+TeFQcb0vCkIztJXqT9mj\nAFqSixgw+8RbeHc2HSAZtFVUeyw1Sl1B0iw00nB2vQ8utVbvUF6Ax7QEecou\nHPxaKQNRlwmsc68mPqr3FrlX+1XZMn+mw571PjcdLZBnJRkxSjcNmSPencCU\nSpFcvK718DZP0CyKAjkSbAPqn/dmCLl6VlME1w0Mhu94DvRXEwFfiCmr3nG1\nhHLeC3wW/d6ApBzwwye9AvGNC6SlnM05ai5N2EY6wTK6MaR/mA2k4jtkMvjB\nmY7zR+npfD/XuWNavo116m7mqbmmyJSsDN/hsjJSTHVj6xwofouxXreMAVw+\nQkj94tKWW5lgr3lK/Dd4CVVOR9FrjiqvcQIOAGHQVJdRy+5MYWGXUo8XfnnN\nsjpDyKlphkHFgJ9UtCTAH93FVRjrRPlr+UpVwNe3gz1JF6tUIDLW4LpcmDZE\nrFL3CDwKz+Top/qtLjxiCGFCyCnI/52ephngFRZTk2ZIvOfo+I64U5K/hM56\n59Xc\r\n=1ZJT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ee03bc27366fe7b10c829dbfbf7e36b2384a35d0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-ee03bc-kp89ql8p_1622202985347_0.48272023016870014","host":"s3://npm-registry-packages"}},"2.0.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1c1958725cb5d457ebb40e1a70a260867192fa0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.2.tgz","fileCount":805,"integrity":"sha512-9yMOeF2SkKVdhl9QOv/mmRu5If41iDV4nNmuKvrom5vPCi+d16v1f1nFPuunQeoZg6TELxmo0h/28fW0TMzc7A==","signatures":[{"sig":"MEUCIEucg4CuRMwg8csp/9qrB1S7skDERqacYAqjVtImNXvCAiEAyQZyO63dUr7xzgqihv8bjXg+xJc8BI60xB3Fofl5RlY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1016347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsNv/CRA9TVsSAnZWagAA3SEQAIlPbtK6sskSa7grGTyY\nqEldcsYzJ5jFIi30YqlMo6LS8DQO4nMaIgxIiwKSSc1LKWVH+Kh5KdQSEhvD\nJGgVFj9nC4BrpHN8Jo3yiBGBmSV92sBPCMR7rPiDFluEtbgunzwm/3kRiLOL\nqyOM0AP0Q1FnQwV0Rt6KjzpMPFXWMxpaaEzecY3nfnLbG4gJaFIIiLyql9j5\nWroAsxxh4rCdXxi1GmhmN10kHIH4uDGw31AkiHm7jVHzFo9P3R6KZyYOBLTk\nt4ln4g4xWTvLTFfr7khphfwPQf5zEIllDRNip1SzEpi8BxWXGBbhpyRvSw7s\nLHGeZCpmuAqYwiNFEpNR+GCBs1wss1vxR0O0ZGUz2YvL8h+qqYQ2qRBv63ZQ\nNrgoffesY89s3YiTsLIUQmYnsPShVIg42QItmovaGjr4AeImUe1qDZSrMLZC\nhCjf30/B0FI6XUVRChBRa/PwRi/Uu+QeLHx8gtxO3u1zZmwz+rz1bX9UUxIW\nBxYGgSzKCl2Tx3DlFVdeWldb0n/MTBh15KKFoD5UtFHD3F8B1yWS1MT/+wzU\n9lEy4E0OvFHxlXbYwJdy/I0GyUeeXuBLpcMBXhzOioOqPlF4Rw65HxRNcyNL\nDN88Ex2nGtCchJfhbB4YNa0KxX03M617634LHjZAdamOYLJvM84riIE9MSYh\nbju0\r\n=xl8H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"350986b2f51cbe005ba3cc674b62091f50ffeee3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.2_1622203390627_0.7812851938532068","host":"s3://npm-registry-packages"}},"1.3.7-hotfix-cc48a3-kpe8tx2j":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7-hotfix-cc48a3-kpe8tx2j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7-hotfix-cc48a3-kpe8tx2j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"af1fab57fee9cf1f77ab443c6326fd7523f8c5b2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7-hotfix-cc48a3-kpe8tx2j.tgz","fileCount":15,"integrity":"sha512-9DCYDa4Fmj8RQ77NmoZUBlv65KSIDXBoCMT3KWxhi9gt7pf0go+ATl5OZYgP9b2RVsFEx5wU7lkLDuVXg9bcTw==","signatures":[{"sig":"MEYCIQC8XQpaAmiKGsjMZdq6I0ctvsO5irnJL5AdvJn26ra2QQIhANRoInneeSUe076UPhbjCMaZ+JpHw2xffMU9qilQe/P5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtl2bCRA9TVsSAnZWagAAc08P/ibwuVh/ElxGeu24ju4y\nhKeN1fo2jghxYJXlhJ9HBvf1vKPRd9x4DYWuDW3PyOAYE49DdijPTkaVIXFS\nHQZN3cawiL7O7gD38pmvBilRftJQAIecrHyzO+wdupPrMxp1Ve6pch4aLWLq\nQzYTRmzyol5PDmD/q8tRdJVVPa/aEVBAwraGSeWTXJhTfFhqsnglr0fMseD/\nLnw1G1f9DLx6QmyDuQ4kaoHBcQOUdDQuuRFEdlE9iyJ+ANsM/6GJ1Sl9jnQ9\nNHLvvhxvXKeOg0+ScERWvOKvCi98y8nmEXFkvcXIN/5kQEiE6X7Cw1C6rN5J\nSqHyzzFMX4nZ/GQ3G+QX1e+rSl4d7KVcROdxUKed15zU2HzOFGz35Re7U4AJ\no8FNSLKAho+1kWPN6qvfIsW7Ja9dKBhWTMfZLfdkVMllq06LXVWzkFt1UwbQ\nQRn4g0/BudKeSi61iFfMQk0oI3c6JVRg53wKV1VG5Y1o5qp76uRX78SE6Nq5\nOdkEt/Vs+inNLVSaeidt3nzDG1XIKQ4cPmCf3wqb9GzWUqvmKBbKMZO92bHT\nxMHUDm5ig5YhpFOz3IBtbAMp8+5/+NhLn3m5Euux3c0PIVpIf7R9vFIaFsyN\nA7S6ZN+RHR+2CWETbMjKWsXvCJOYJDqsOEJ2SpqHeGyeaRegEtRhI9JIYYXe\nkiHi\r\n=zXEe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cc48a31b075c3f0c0670d4f41fb83506027e45fe","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfix~et_performance","@atlas-engine/persistence.contracts":"hotfix~et_performance"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7-hotfix-cc48a3-kpe8tx2j_1622564250676_0.8697850141813659","host":"s3://npm-registry-packages"}},"1.3.7-hotfix-db39ef-kpfluigc":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7-hotfix-db39ef-kpfluigc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7-hotfix-db39ef-kpfluigc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2bd41da016efeaf5a12a78fced4b1ca209b25e7b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7-hotfix-db39ef-kpfluigc.tgz","fileCount":15,"integrity":"sha512-xu3jHQTcDm9epCeVVd5chkNhjXxlv3/fZ2X799ImbD+ZmZSQTEqCXb0JLgaExRjpfXji9NrTGIdUCNzUp+Bc6Q==","signatures":[{"sig":"MEQCIALO2+mPeElTponGrDs5BAvtYm8FbReRpAApuFE3+RcdAiB0yoewSpD1+XFl0CFzJ+CIU60mkErry0fQMV7MOkMq1A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt586CRA9TVsSAnZWagAAyz0P+gIOW40WprYvafC3LR25\n9MCSCk/eyB88Sx9LdjMIXwjIec/j/g3PMz3YJVvF+Ip4oH/eWwdDzUkypseU\n87t9cy/u6mjVZy8lHz9LnLbybD9KQ3/ZGFMYA7FKkMiopqy1oTveatmylzcA\nWQ6VeAjO6gOhMs9RwTxiHwuy8nDK7f3WQinqBsQuow9fHYJCA3ScM+Tx9RAZ\nigGxZnu8bySXswYa4xp6RiuUVtPQOxBQNgB9sMECdbMF1PQTptk5CJXv1nC4\nob7VQD5wnxzk/0zObM7xuUT8UtwDnIyefiMT8DLICyZkeMA4SB598YX8Tpjf\nablC3dcy1pyxg1vQpT2V2YQp7ywgb9JlvBdhajXqCre7VoHGQFbADx4//jDL\nPh3SYNHsK55bxDk3GbTLUR9700OBBFYgOcXH+PEOShg56R/W57KJR3SomSoH\n80+2uYgCpfNhW50IYEQIP4XY8+wrsmlQEjBCysPwEDNtr0UGPuDLElncmIBj\npFlsEHTFpGiabMy1Js4buoVEuHz+LIJGshMLxNuz0+LbZlgQJBuMB1n2v+0Q\nNHkgNMUxcA3E+b32Ruv+4ab+U7uttDDH5dqVDjjNspIOpw1o0Y1vDtrfw/gW\nUZZWl/zhqLXSeL/1yi/t7LnT8C5Cd+PjMjxCRC0gpkmvfMBeg5QicgZsT65L\n//1U\r\n=Jo4n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"db39ef89e4a33fb56f9ca3521bc9f7320efb8270","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7-hotfix-db39ef-kpfluigc_1622646586455_0.45052474945054577","host":"s3://npm-registry-packages"}},"1.3.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9d4104ad6a401f1724b3531394ac77401d7015f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7.tgz","fileCount":15,"integrity":"sha512-C3zSp3MAPn7TlA5LcSr3r4f5zzzq96zOuPBSPOye23pRfTK6cQX8QsT5UtkfLvKA8722/Wyw7jxJjoXW7XjBjg==","signatures":[{"sig":"MEUCIQDk4CVV493o7emwDGCWJ17KDVWMGF46M05ziSQ1jjvkkgIgde6Cg9CLn5OxTEiLhyyjL3YiAp9KGW1JOfShEc+Euss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt59LCRA9TVsSAnZWagAAyFUP/jI440oyWVCGj3zO3olt\n0UcryJkNOukxrSNl6YJ4WgXaaJeNyzjsrvdWrU/XwItgBj7zUX8DOy72sSVy\nrYe9ubZdN8kqjGqTubhvNvkHuwYAO7NVbE1cXtmvi3na4iUxYaMmgEzUvyYN\nrNCpMY6F8mQMNYbHdXHQIbNb2aOMeCK8WCBFdNAnym7Ghfn/1/noA0M75d6P\neXsKFtJfhs7gFz/M03W8NTEYAfLiOyXTFplzVXIvat9OXyTlalncuTU0UM+h\nQ0DGvz+KLqF2gg8HgYjpetpiMx89ugxm7OAROqjlWR3ZHYZt7C+11sCcD9Yw\nc+yL8WoB7MpipA65tfa4rQR6G1zdpLEkdHIs3SK6c9ifR66aGnXUFVUjtLXH\nYZUGgToorqBlba79/2XiQIHVvEmUkE7ECjbXEb0uohRYDXyrR7wZS1XlnQWh\n7Rn8BPkjpS6ftCPy7fOvMMcN/eOvfidwyP4yv3OZORm8Z64Z4J1ONs/XGn3Q\n14mc/iVV9kMzxHG9NS2IGpoP2ltd+DBSkZdh2Ebn5U6cMYDd3GyqviyAEdKE\n+pXSTods7144GReGSyjCkYEmjkkPYa8WOn15mfNwyHmiKqWwxHpN2/6u++qQ\nwnK0kWzXo1EW9bWVx28wBJqTyctReV792XBgpBdF0EmezkgKuny8cmk7BiD/\nLV33\r\n=B2wC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"1524acded062d49871b300a871c0e3a19a16a5a2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7_1622646602966_0.8070537853686439","host":"s3://npm-registry-packages"}},"1.3.7-hotfixes-fd2a17-kpflvfyd":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7-hotfixes-fd2a17-kpflvfyd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7-hotfixes-fd2a17-kpflvfyd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"05acc8ae2a0375471914b6869af8e8cc5183b608","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7-hotfixes-fd2a17-kpflvfyd.tgz","fileCount":15,"integrity":"sha512-NDA0BCectKQ7jV+nuYhuiuqRhYkIdV9toRkqlkwMKIXudyoIN3KcyHCyyaYNGLtI4Bu+1JoxC3YHYNY6Tp98aQ==","signatures":[{"sig":"MEQCICLPWvThyabh6pn3t0Qw8lJB/gvzpnq6fJ/EDIYvIlNuAiA7Dbj/XSI+thX2RmyEafd4x1Fv2kbYD0yBpnzj4Pyxgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt59bCRA9TVsSAnZWagAApf8P/00a/Y3qthdMRlWttgXH\n7AnDKODCP8tiSZDSulOMab/OcWhBvojABFT2UuKjpTC60V+jMICCRdx+fJOx\nYP172+4UjE8jaMRQQ0wITrPVQhs9IUTsbsWoILPMfebbutg/gqmXQMcJSWLP\nL3WYyZceNcZ2GZ9/AAvYCzcgtRinCSdoXCSv13A5MZ7FgMWwvYM4wWKg+eKR\nPMYjX4/BKWHfzW/E1tG5yel4zPdtvqtNibL0wJiSCP06nBsjjf2R08CokTZi\n8FMpI54dbHa5uwOZ6bbDr7I73OByIQMIM8HUpN/f9Ak7WMzJUjciviA7W2iv\nmej7vN7it6nYBfN57wmh9l1HMG5szWEaSsDUqUrjr80/kAFWISfzGxmm6yTs\nnfFGLpLtgAQ0Db3UsiT2TdjMAgv5RfvVGDpfCNxvgsNSNbhAX6fFv2tEzl9c\nEFwhKKyxoG4C2h4zMIxc4WNzOuN6e3Kyi/V81GEq7qON5tQYKrUgCKF5Do3d\nj7Ytzu05QD+G4FgnNpVqKG7LdqJQ83PD+WbhAFmno9YkdYn7ADKWlGYj4NcU\nrGNtj0azhLUIxeE1920R6sStfTwZng9gKk16rD0ThFR+zkggiaD17jVQYgSN\nez8lH0bGKzyaZz6WCmDhWsxcRlyhhH3KzcbBpwOY5xVuqeemJ35i03EShpDY\nzjVd\r\n=h32V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fd2a17ede0bcac1943be2abbf9a38883c5087c72","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7-hotfixes-fd2a17-kpflvfyd_1622646619626_0.24189022193021326","host":"s3://npm-registry-packages"}},"1.3.7-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3899a1ab0908997febf130a0da8430b8e86423af","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7-beta.1.tgz","fileCount":15,"integrity":"sha512-E/H77FeSmJ5JRKPTEJp9goZQtgWHzpQ8j7NQyf+0s5BDiXiQFFb376MvC5+wVosgEeTERGaXi6j5VHEk6EBj6Q==","signatures":[{"sig":"MEQCIA/xWuBUoEm20L5HDNonHouMRX92cXEHIFOYL9MvC1iNAiBc0rZqUezjNyWSzmf5mWLGHXaxD7Bsj9sNyMUyBAq5IA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt596CRA9TVsSAnZWagAAxr4P/jjHZtQy0ZwBN+YnhY5C\nYxCGd5T9ffMK0HVs19jYNO6LM2jxv1GCmCoOgk8TrYf14b+VWUGXTbEXdDcu\nN8I/rY8rvo2SNjEv66AbKlVAxLaWPAMC9cy2hwuxFaYiIsrewmtcIFs4VHgE\nagAogIrnN1tlZpxVRSfb5Dfw47r9qrrhzxgV5dyD4Jy5Xn/OTUGDDh4YJBdI\nx+/h47gyvSfL9wqzSrtGawTwV2d7z2G8g8ZuHlrkExxGvn8hZnIkFw+j7Gtf\n2KjBYWWJoWPWsH17zC00OFK7ZYG7CPIcJzVnixRKxAOgA60MPB0U7/YCQoCV\ndKo1p5vjSIS+oQW75dhUVeAUIaUY+WgNrdBluXfDGGgDAE4B0AvBqhhICmL1\niJM4xjc3umAXkMPdJ0pUo4c4cWpYORzvo8Ki4RMPP8srhJoYjRXm/DgWJfNp\ndGuT6v7sZnrWCdKw+CpQhPBVuBOADvBz9SVM/w96A6P4DQzgbxJlorRIdM6/\n9991/WIkrgOE13XsIffKd0R0rF161pyzL8cSGlciLqvO5X6HXCdDTHMJrki3\nZoedj56HYJ0H1LUhjjb9D3zd3czagyTfXB1FpFVHs2Aq6MQFTNr8F+X6nuQ2\nkGTjjFP5T3hxzoU7YBJgaTRO5Qn18UdXAigBL8Fas632tr4fHevHcUrO5LHv\nhimy\r\n=Q4ok\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6593bdec46d872929dc59204aa9e586d1daeb6e0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7-beta.1_1622646650097_0.3683123519214624","host":"s3://npm-registry-packages"}},"2.0.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d987ff68fe23bc629ea883d67a9897a2234dab94","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.3.tgz","fileCount":805,"integrity":"sha512-iTYh7hf90GkUYLDYdXxfMJMaviyG/TjreCCYUuw4/MGO8P9rqYS6wK2MkEL+/O3hjpSC7Wl6MhhVoWB2N8Z1iw==","signatures":[{"sig":"MEUCIQC+t0dwRDIxMdsf2oLEQLi0ZfPSTsWxGmms2UtvspRBygIgf8q1z46V0ipTvn3NFTXp6ilZ2XH6ZlDWaKR51y8cqNc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1016347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt6BbCRA9TVsSAnZWagAAW4UP/iz/VzE1/v4+PLtD0xYe\n0pg/ESNnvN6JIPuvgbGBZdFl9EjdTuGFxlHMHen2+qOFi4B3nF3Vcs4uZuZ6\nK5xKVFmxfQtlddfA/a6UHjH+1oL5VRlLVhEnMOYPu3Fjoo4YFiw0MfeFiVUt\nnlPc5KmvqPgtgQ1ifxLBDxiTK3som9d6JCw91eHezJZXdUiWv/Vst7k2IU27\nG0aB0H+uGquL0zcGfdqHqymkOfWSTMha8gTXD6gYufesHDWGJ+XFq7AKxb1r\nRkfjeCxD+4cf5sELAkWZRCXIqIj6fs07NqPYstDB09f88rxCl48K4Z2uxftg\nM6/1zsytPxyiZVeHhufS1YxIPsiHTeDUt+zSI1zcQr+e3WL7piuesnnE6iM1\nlFsSqpwhlcNE+qC4L1m7rLVC3cNNWP/A8fCZvTBkUqw0F7gWAQMcjnwwRRDv\nJl4BhmGDj8qNfLlqHv1dOBbVJEryhdkpgmaHIDeOOre00JR5w12kazNQ4Ckr\n94hRxl1gYLFNSORC/VzFR8TNU6Lg0Ne8F+GqWLZcF1sYmDz9oaRZca6HezCr\nnH3NMhl+nby1V6fPtTgarLEShiRGAKSqMJUAL0mOwQ5SLVN8oknWRCSCl+uq\nWgt6dICwkRnftCb+uv9HBTC659GpzW1bX6qsMqLbykz/A8HJFSNh6eyxTUmj\n12yT\r\n=1laA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"43bd482dc47db2e21d5c94e7a7b88ea2e0597c8f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.3_1622646875658_0.6794300495845886","host":"s3://npm-registry-packages"}},"1.3.8-hotfix-281fc8-kpmdpj1z":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8-hotfix-281fc8-kpmdpj1z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8-hotfix-281fc8-kpmdpj1z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9d7b858027c615f1468c9db9e4715a91835552fa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8-hotfix-281fc8-kpmdpj1z.tgz","fileCount":15,"integrity":"sha512-eumpCjFashn5jtPgnDBoBua580iSwpERJpquSdh5KJjpnHEcCjQCANnQBUJcP63Jtv1GR8nxwwvYf1UDtlHzfA==","signatures":[{"sig":"MEUCIQDWK83iGX1ycDcbU9XOSkmHJOrhqXNCW6iZMw0S6Lsi8gIgK2zCbXxbBfeOdMcfsFECl4FsyMHjkSQMUYqpEZv9SWc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvd8yCRA9TVsSAnZWagAAADMP+wV3tsiAlXSilNl4YB/2\ncqsEgn7eaF1XqW3Wydz6MthuIKNG82YFjYR+UveNPCPBiwrCIuVvmuwrFj9O\n4Ym9kFsvdaVbm4CrKvtDjIrMLj34QqA8hv3NcI5Mv7KcCRfZ98Z5FDnv+TiK\n+0mCwGmB0LAIrTF7Em2nl4DTdOE4TWs9WZb3XK1BgK2xLjaEev1bAp8KOBRT\ntMRJ281tDnn/WwCgRUFxdjSeE8n5seM6Kr8WlpQy1A7JyDPgikfmCD1im//1\ncsNUTRtgrIdc7f57X+R8GdlyUoPsvVlnJmRK6W/v4Jkyju+Nf+PiNLfVxtyv\nwJ9bAVrRsep6629PPamhSPGOMXFJOkG5daFpuaZ40QI4R9zAad3QyVADgVoK\nIssg/VhRKWTzLYH1WfKPRnnxIjueGCXJ5B0XmxchX1GFXGqThW54nhiEwUEU\n5iBTUqOAKTxqVcF5eBv3vW92QIJ2bvRNQaq/fF0BMmvRmxZnHPG+oUyTyfFl\nKb75NLUrpZ+oLgDOEJpi9xAjDe623ykivHN0tEPNEaVlQuKz9XhM5W6SV8we\nrgorvcjZqwuPP/mCMBgWYdwYRtLAcsvIPJUekEUeHo7Hoid1wwkhJ8SJ3QQ9\nMm8eHZtm74cp5tqepF8QxVoZBnfMOwEtBMXnRN7/LhMX1jj+vGD+Sj7rwMv2\nDwRF\r\n=UCLn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"281fc82cb8c740c4b455921fb427e1199cc73d02","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"hotfix~call_activity_stability"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8-hotfix-281fc8-kpmdpj1z_1623056178147_0.008933803566563814","host":"s3://npm-registry-packages"}},"1.3.7-hotfix-23ff3f-kpmjtsya":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.7-hotfix-23ff3f-kpmjtsya","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.7-hotfix-23ff3f-kpmjtsya","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"764952ea35f4925b65c5e3213909106bff4fc2ef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.7-hotfix-23ff3f-kpmjtsya.tgz","fileCount":15,"integrity":"sha512-T1ccL5PA3dK042qw+6vQ+KKYQJTCSTZ9bP+5QWTEsIZKreL8D9xiz9DWDPToiIUyA+ZBvOQDkFWqkLSRdkak5A==","signatures":[{"sig":"MEYCIQD8BKtvVWLVnd8avQiSCb55hkxhlf1rAdIdCXZ4gSaOcgIhAJIDvDfbFAJT9O4P1gRYp6qTRs+T+5/vApPhCNv6bXS5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvgddCRA9TVsSAnZWagAAgxUP/AkOB0wzoTkoImwCbxCF\nZdVgnOmELtL3OpjuM2DxArZTn8yEuLug9bd3hSx8+3ocIiXVcm8wtnAvwde1\n4w2/WBC1FrF+Gl7Y3SPEW95As4cbEvI2Uak+tM8MbPghdPBZRyKlR+wH8T/y\nvs50JoBImFG3iPbAdXrBratZGeIgB/a+ImDh4vhoF4jKKCcFVi4MC0+f+iMC\nMB7P681cn/3z3OrT0WZssN2+a1/jRzEPabhOZAbAsMF/F3tdFsyRRxuYAAj1\nKiS8J3tbiHfpmZHRggChkGOL9KHdpOyq0s5iEOP6L/wfUMYBHG0hRpFGDolQ\npCRabIOfHfPBTkx6e9h3Bqgdy7u1M2cfaPGc6GtaS8B5stUypRdf1vzheo8L\nCaGFWcasOXrYzApjxYWM8mAPAhqpArYgdQ/PaPwC/oOI+ldXDcymV18NWnbS\nfeb+uic6GgoU+m6zd+SrO5eYoDj4qcXP1LIqAQwCQAnnljBDMqqOAjaWvKZr\njdNHhLftddblnATxJClBcmeOXaTKM5e/CKzKTuj3gRcZSfEOWi4p0gW2SLgo\nPl3DlKe9hHVUCdYgw6uhJd/ihgB0SLQXKFNpqyG6iEbOX3oAegnxaZCPiVgv\nacy+kOEykjTUECAH8qOt65xww2+uuGZU74pyu+SaE62xLnaLrI30fyyKULB9\nWyG/\r\n=PR8j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"23ff3fe54040d6912a1389c8a611c9f24d6ab5f7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfix~fix_process-definition_cache","@atlas-engine/persistence.contracts":"hotfix~fix_process-definition_cache"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.7-hotfix-23ff3f-kpmjtsya_1623066461105_0.7575785620658997","host":"s3://npm-registry-packages"}},"2.0.0-feature-f7b1ac-kpmkblqy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-f7b1ac-kpmkblqy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-f7b1ac-kpmkblqy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"085ac933ccf6ab680667e4981ce4392532bdd810","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-f7b1ac-kpmkblqy.tgz","fileCount":960,"integrity":"sha512-ObNZFrrua8OhUg9cLUuSGLIbGK6uCM0K3mlJsRtPTVLrw4yqnNuNgK1TaZd9J/IN9I9m6mM8sFnyjgHQnTFHEQ==","signatures":[{"sig":"MEQCIDn51+u7KQiQSI1LT8kf7VegZIiZofKK76mIHwV6FEQ2AiA2eJSANejyZtKFayeFHBrxETMD4mdjo4u+OLUI+7M19Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvgqoCRA9TVsSAnZWagAAyxgP/RLaTUcvdPzWzZHCOUBQ\nCwXqDylzL3GjjLUjqEKXM6yj6nyrz+VZ9kVUeaDuL9exIycrkGmU0hAovRpn\nt7dOtr3xhjxqzKyKeQ+f+en+SmxfVfV1oKwtvwxRzEK5FLyD4HYV2LH89RrB\nZ6jB2LJ+QCKLKZOGODj12LVLsm4k+4iOtKTeEXp26ZUODGrLtBsh/uuloLWY\n05CLha+qz2ElxXrhZ/Mvu3VR1mVQCN/u6Y6FrlL9Wii+B+G2s3vGgN/ZXaty\nrT/uwtpXs7WMhjhq3wwff6SttyOB40K5wLYonxNhOSWbZwjnHto7W855UN/N\nBZqGAQ68wuoDhsFjIcjTnuSC3LjVTpyLARGOd4C7NemaieA2MLUgB6Q4pTKn\nozHixyEUdDaKIxBOoO1GLjLLJC9WoyNfHK4NrTH02ZiOIaAeLTh6T6flo7uA\no+4WrtbP5h17wY++qwmy2hlH1pguCsMVx1nAuLHQ29cyjHdcpVYMTqTtezjk\nmPy12aT9jsoWtzppKr09USim4D05jtZDwWmdoNqwCrpeIYlH5XumQXb9oXd3\n9LVsaGnOj1cIfnqD8GLlUUaZbWPJmNd3f5Di3JSfcufrcnPeqpefcN/bqdWb\nMRUjfUfunLvvD9CCRlMVFS0v3zJvlsMviB+Pal1Qcy8JgIOPgCzKadlRGE95\nFamw\r\n=J1CI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f7b1acc2ec02ed6844b241ea3b50ab759a0e652b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-f7b1ac-kpmkblqy_1623067304032_0.00027700750805337293","host":"s3://npm-registry-packages"}},"2.0.0-feature-7cca00-kpmmapzy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-7cca00-kpmmapzy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-7cca00-kpmmapzy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6354a1e77fa442a9254cdd8804d14cbc1e835113","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-7cca00-kpmmapzy.tgz","fileCount":960,"integrity":"sha512-vi3cjpIOH5UuYnw/VJ5wByOUtA8RhC0kTkRcjerW9Nj2RWoPXBrbLKFumkebHK9/CBRxEWyDZfpx9SZ/3NrFKw==","signatures":[{"sig":"MEYCIQDxX+Ya2YwCeZzrLffXrHuNRTB1Pcd8RWlDdtiD5L8EFgIhAIi/0xCAaxDw83j/1d3Cnc+9au1Mbk0ZvPyBrdPCmsTa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvhepCRA9TVsSAnZWagAAIh4P/2pgazRBAwPXlRdlAfpx\nHZdw3q43pJgM4S2VQhme4MAWyo9pLMjchXbeU2A30LOy/7RgNxzpY7LwtbmE\nLTp8086p3an2hAvlh8uG+ClevNqPGZ0C7h80ECS3LffcWBAPP9ymJ0qHL/PE\n/JnTF33ZFkVwwaK4dlQp1xJyONJEn/UPdv2oKpUBmRIc86bszzNmZFNuD1au\nm+PAKSiHLD9cjMPraq8HqwnabrOuKSY3gXt8UEButoCnsJT2H+xZV7Cv0+YS\nR6hfox96/MhCztIO6qJtIE/VFOe5n6YQYgjYCDVDomZOkEOyBcDYXUsnBBBX\nrIFHmmZE+PAyS5qzfQf011LoHau2yi/STPICdOS0v326YmfAmZR50jiCzzO8\njO1M7Y9otmOOw9pokysJh9amOA29AhLBvfHSn5MRn2623gtzw+YJ842WH3zx\n25a/DmNlrnS7b9kWOXtkoaTQTtljk5BgRhZfYlbiqG4sdDx7CRDpLORlebEA\n6UzUB3NrKIPnlIJvcqSnSXQ6gp1P2dzRYWXt1Kh5Z8GM7UqFOM2tHdj5/Aq/\ndaSVhY3ihLfeO/W1J7dWmhkcd4TfBHtNxmVj0n7kRKXSKfioFRAA2Zi1sQ8s\nHg48tUR7SQF2zh/nV2fW/CfZbiBLCpupDoFq354wK6sWrJ9Bec5bk3vrLIc4\nBqNt\r\n=dYoD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7cca004931b49d0c52d47dde4a16b70437b0dbbc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-7cca00-kpmmapzy_1623070633334_0.3579621299450655","host":"s3://npm-registry-packages"}},"1.3.8-hotfix-58ac00-kpmqn0ob":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8-hotfix-58ac00-kpmqn0ob","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8-hotfix-58ac00-kpmqn0ob","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"30199b8dde9acf71eb07e6a2a1c0739ffb677ec2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8-hotfix-58ac00-kpmqn0ob.tgz","fileCount":15,"integrity":"sha512-l5KZ6MAvhZE8JTiAjrLp+U/qS0oYYXCm0RzF8Sssqgt2sKUXsTNY8m+TUoDIUAjbBgEmu8hiXnCCSll4WnzHxA==","signatures":[{"sig":"MEQCICpsGa6hB8jXIgLRYYgKeerDfFeLd1vCz5uee2LPyFIQAiA2qMh3BzHnlTmPVebxu3l8Oq8Z/r818Osi5tsFutMs5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvjQICRA9TVsSAnZWagAAOoAP/jcEdtSmdZk2wqxfNWz6\nv9c+HG1c6FN5D5xp6ZKHxuFrvCsn6E3kwW2Ex8njbW0csxdZpZSVs2u/Y474\nAwigcex+fOnLs7deM5B2BNpF5mCBsuA+vhXTII5dbXq93+xbmeDCdvdlhVYE\nQirJRjmucOYuL+VPFTW+i1PgYHoyrcPM8Zkfj0kAIUKTrpuQ1E5jQtszlCU+\n0EaBDo4DYZuZVF1G2gD3qZK8Ij+D1i+DkCtJHscS9P2zXBA16nu0IBPejTUz\nD0OBtdNGj8KM43QFxm0EgCyTdNLTCPrzYRLAwqx0P1YfcQLi8n3wxgNYYlsE\nsGXDhkOLhQ5PqD6yr3asb7rlIn3XeNaepDA7jhpwnXFCEJYJOD0K9YCAyUZB\nccoZIJI1RIoTJbtxtDxWNW0Yplzh4S9PJmSkHLe0RKDf+1c8BTxWUVyaH5dq\nhtsFvntwSiXDfTRRZocogkM5/45hVX/RoTRuFmxHKDFNOwyMPoEEKwbozdDm\nm4tAoZ97Eqq6YCRJdlivZaRogckjQtrcBIlXnqSs2ZOjyt3uwFHTLRABnvvQ\ncx1g5A6c3r/DxcgbVuvVUrCwLjVFjsJBWqmApX2cN2Xwt+mFKdfsTiHpIVLi\nJdTOl9OWhnUQm9Y8sHbdilSl5u7k+9OUcfRbtPcGN5lbdYzytSO+3MIr9Ca+\nlHtv\r\n=6YLc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"58ac00180342fae796f671b20cb593dca6a65a57","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8-hotfix-58ac00-kpmqn0ob_1623077896606_0.973305602501066","host":"s3://npm-registry-packages"}},"1.3.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"153bdbd1d8d673af2d813b772f55aaef204dae4d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8.tgz","fileCount":15,"integrity":"sha512-4Lr5G1Ubp8S+TOGvjt/yNr8EfJXuzmzajJQZTKm4OsV39EYTS4I2Dd1vQKtLUBSJL0LnybyPOd12oFzZL67vuw==","signatures":[{"sig":"MEUCIQCwA9tZQsD02WsLd1Xv2eOC2sAEXmFd66dYTig+a4uF+wIgM9M2MiA8I80iok0ztMKMWIHrIaxiEnYp6Q3aB4+RLDQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvjQfCRA9TVsSAnZWagAAepEP/i3ylLUPAnfIj60RLwIV\nJyWjGEX4omSmIjc7slKim840/UK5yHmyYMvCuJ5MiQElBDcC4IPDg1NIHsiF\nSqOgTcLN2pli6jWwzJTeA0Mc5JA15prfXt305W3bYVNF0+P5zvBzNNA8jgw3\nL534l8l2EdKqclYl1Rbsr+3izdluCBr58ONcLXoDjbb7Iyx+56acqwWvOP4V\nHuMqEHVgI2Syb8aNAcWVZa0M/BgubyJk5GNSi0uK3KQB0QUnxA6ZRx6G3tYo\nMwLJyOld7UfGQa63KB6uWU7MFqlQN90dqpl8ETQvvU9e4CRBoVwsq3vtLiXc\n4hqL8KWNH3JkF1u2w4bLQvayv0ffl3b7c8gzk8peI68qEGmIQrLb5ZNxq86N\nMyPtLNfgHt/viUMhEzDrfUz+j8AGixVnQpb3nwQ+dhHfer9B2zk9iVyMXv7A\nsHxDT2BOSUWr4D2T096fGb8PjAUy/8ieHPw23uku+xaIIACJa1JcVGyLtoqe\nUBoDeagPcAqYRrxMqaU7uzaozpuaPn/494WwWl3nxM+FswNeNP5p+6krroPV\nJ3Jia6aVAflnrmAQM3AnhQ5vTF5BzCKPoO30Ue6GkMxnHcR0uPgrtj39JmN5\nu+l9YCgfOmqgfEf5Mjx/Cx5H4fKvMtXVBpUnxJuQ++56MOnTvQT3BR3SYTnN\nO31y\r\n=Cs7q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"7429c0ee1e5c872b00125e3f13137e18ff65e1c5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.9"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8_1623077919443_0.8416313916992151","host":"s3://npm-registry-packages"}},"1.3.8-hotfixes-e7487c-kpmqnjgn":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8-hotfixes-e7487c-kpmqnjgn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8-hotfixes-e7487c-kpmqnjgn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fec1cc71680e1654deb1c4ad83aa42f3c32a3993","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8-hotfixes-e7487c-kpmqnjgn.tgz","fileCount":15,"integrity":"sha512-y7Y7+XK7n26P1ed0ttvY/Y0ZeJ4sVX2pa3HJh05AEApOXxCYmlyy3vyCCl9bt+7zQNd6OCNV2PEIR/Ryr/Zv5Q==","signatures":[{"sig":"MEYCIQDne+WAdiel1nucu090b/V99F6OOKgrUhOCv3y2iJPTZQIhAIduLL90f4z2H7nLBmNyK56WiMHiioS//lnNlPA2jTli","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvjQnCRA9TVsSAnZWagAAqCgP/RZY4qqKSD6jqexaBxhm\n22eAfnO3a80bzdKRjqBrgQqFJBf+jGcEfauVLgA7scJdo0ylG0396AOzXerY\nRXtf/AoBPQd1uBWRP7Ilgi61wtNOsvwcAUIU817RElX6ddEWhc7JNUfqa0sa\n4Ps1oofohaCuZKYhWXXqQHYozqUN0qdKLN0EFm8/1rm3GZLmTZtK1LPYEJKR\nAmDE4ScdGmvQ68ISWpqKViUjUe/y7Wl5WfAwf0NIFsVM3HNZQOFiKzN0Zkuj\nxOowafXOgbY5I+2dytvL3LMsySqGr6UH+5gVCuhmc5vKIP8tktMgGJZPaQ7D\nXDCKhXz8wijBYF6JrGZbstv4n8mlGXHlpviUqyQqJq1XuVuo0CDOpZJAnOL1\nFCJ5uVsqKjubFanD32e+WepotpUIaY5PdWd1r6i1FxncrZBIjDYeH7lHgP4n\ngDuf+FK6W3K8j4b08w77Ffz8JcbDVeREN09MJiprfHDXmpv79bJAZI8Wbqr9\ng39f7XdOZs3y2nALKf95Es2snAzUP24JmTiBLvlIT/ym79xlrvZxWWpIVgtf\nhHpbWwAxoOMYLPe93k7e415kcw0KaYhnWsUDP3cB1iccgJADfk/tpiA19Fzr\nkPI/0rqAFlwZaPnW+ugSEqMe7yTY9uLhtLKfJVwaEb6B0Z/fcN1eCrMGoGob\nG8lE\r\n=G3aL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e7487c78049a861ab2f64a62b4c98f42f6e12f9c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8-hotfixes-e7487c-kpmqnjgn_1623077927228_0.2309621813594256","host":"s3://npm-registry-packages"}},"1.3.8-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"515fba3eed507b0c86af9e6edcde2d69f973a61c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8-beta.1.tgz","fileCount":15,"integrity":"sha512-3pvrRr9MiSfZdORR9Br2hICqHD7kYcIaiXIt48cNT/KtFVCscZWslklMcZ3fKBkUQenJyabyYIMEkOg/G7bvZg==","signatures":[{"sig":"MEYCIQDM3MjCVprkz6Y/d4T1/ICNnTIXjhM9tB6w6duVXkF1FAIhALg0u/4mfYHZDI7MYoXVfDusLqZlGp3RJCo/ttUvGI+m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvjQ0CRA9TVsSAnZWagAAetIP/jyEr9w+pluXnH+kN+9A\nuqy++fz7Gjr9w0SPqXCi6G10w0lirpMyhHCefM2aTWabpVb+7x/fZtue9R0d\npMeBDqCj4KG4uRMXFDBLFOBHhc7g2pyBmev147vtFY9r+QkgLTczQRjRAtdl\nosNASRWV88wkJMIWc0r2t3g5uIpIXHLTuzAZ8KWcvO96B775Q/FSALICY1Yj\nlhkRnvXGJQxbiyleJDO79hS2FutN5B9eREckG9cb8UD2t7tBii/3UHjH5fmS\nQYd4Fox/f4pX1iWdK9eV23wUVeVeyxRHUMWJOhskGOpXf/bmvyd8JFrRtjlP\njOnW831KGlIFSuIu0XNM92MfkLlpgiiXr1aAhEQiQMWsiyYaSw8hAcT0woEX\nJFdJvfOtf9H6v3gymAR6dzpTYhx5Lol4QNoUO0fd9SbziNpyC2X5KTQfd9F/\nrjOIyURWq9jpUdjivWhmVQ0mNNuYM15H3uf3RNUGHaX2c5+Qr/1CtrSe5aWP\nW/DIfEgpOXn27fFEOFjq2vxrsI9r552cL+O+9N2a7rfwsITrJ4mzEF15JPZ9\nwQ6M//+w6IAOkeoDyx4bhWWQ3fsUJPyd4T0xDmsoZHZL7kB5Zcse1JmCDDVf\ntO0Zf+lSCF8irhHCWbnBQ79iCQeTAciguB+CD5xYeraHCrTPwqXcaSJqnnN8\nFhEU\r\n=9ws+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d759fd605a5ae3a05e64e45bdd02f064e8763e30","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"2.2.5","@atlas-engine/persistence.contracts":"1.4.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8-beta.1_1623077940752_0.3879524055300634","host":"s3://npm-registry-packages"}},"2.0.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bfac04ac686bba24fbc40076986b708448e14a64","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.4.tgz","fileCount":805,"integrity":"sha512-dk+GeJJb+O+UXul1oxPGNovhNnekd4+W0IMCJS2M9XhJ92fcZQLyvhDQP1CNuppXzyZ2s6D0GY+o+MPwlJwuPg==","signatures":[{"sig":"MEUCIQCdibxVyiMuhoOHS9hvkGTcaf0Bl1AaH34udRkTUoYfLwIgWnMgkElfQ38niLUpFVsjhese0UkwZQ4p1jcOWtlSNRU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1016347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvjSLCRA9TVsSAnZWagAAh3IP/3aVYvWX/U7P50hhh5hR\nhVP1vuPko75mygRjfeALvzRs31Bi7rz+Or9GrID9mkdMCoy47varlhmA49Zo\nM21j0DsnINp4/diSnM1CHdc+RUmIpYEiNa12Wai+0349VRr5KUSCarzFHdEh\nuCWlQ6mdPsjRa6UPsopqGiSaWfXWJjhSln+gxmcVZV7uUdEQtZx1n9GEolzi\nnMapj+qBWBZVXncg9NS6Ec9CRFQIYWd5aNrekCaNal4BeAbCB6JiLbeorkkS\nTCK1tzKv1mTWDcpi9kxl4LDGHfsKF6h/u1vR0bd0yT0zkY7Pc+MUwFe5tDCa\nkWeX9Y1Ojhv5czoRAKFXVKQgEdk1w5tsqg6itAV33TSfeSDYAhyG575o/UV+\nN1dPiNm95g/brBsN7KdEucP3W22b3220Bg8RyFFI2nLGprf3JH+4WTtDwC69\nqYdbEvceD7FzyzvLbkg6QcONkJ+289LpCUvvGEWIaRJWPeKeYNNfEXhLFoGz\nqOd4+8TjryYYPa85b0zorQhHqVWpegLDpMLEOqqOfG+6bDvkhGPezJnPLEfd\ntL9M4677C/1v9TqDUlm7vVGRFgM+S593Ztb5n8V4JO39asfdqarWXSXACPkY\nTzgMFsoaz/25qpmOpfx00U1ACRwToX8mrUj6qNMMjwlJBAsWEF1SnGYk17HG\nstzY\r\n=g7+Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"19571fb8cd4f13373ba4272f24a0f6adc62f9800","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.4_1623078027319_0.5821158375467901","host":"s3://npm-registry-packages"}},"2.0.0-feature-a3b72d-kpmsjjpl":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-a3b72d-kpmsjjpl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-a3b72d-kpmsjjpl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"088e76f140a97284ca2e2727bea300a6a21715e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-a3b72d-kpmsjjpl.tgz","fileCount":960,"integrity":"sha512-A8esgcJj/JdzD/8NSCAWTK7Etdjgd5KJaQJDmigNQA5QKMIW1Fp4ML8z/eyGawOXTOwExSWFfjEZxp8RskaOcQ==","signatures":[{"sig":"MEQCIFPTZ24ffN1SI5RLfwDQYtUgTh1KtTX46476fv9UKgqQAiAWoLmTgfXlMNRqlaYxwn9ysAUbTSI4JsULMXZ1LD59hg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvkCYCRA9TVsSAnZWagAAfswQAIuttTmMA6pl5zb0j3P9\nxUeM4GkP2ajyyJePOjimxtVbsrgRsfqoKwd+9YWB5b0AG8hNQe5VT0pNcORq\n5Co60X1XD6i/+wO5F0YO7qF/8D8mYEsbI1v00rpRE8aXDGZ/uyXrB8OU9DlN\nmeCA+ZNTZ9re3IWCPXW+fwvLOwc0qKCbALZ/OfjPDOfzrjuiufX32lPlO/Dg\n/lK7c/ODa3BwQ2VAv/u0TA6ggk9tgLy3gD1cuIWekCgXHo4h6PgOmMz1HMRP\nT3YmYAFjhXqvrwbMNvEIBLOlGYvt0fhESd3BfD67lU+HGs6xmxebK+OEIT1P\nM/3g1chez60d/SEil91GfDtyEIQd6aya8R8wlTsb1NoyG0CfhcIM4Swx/EBy\ncIhZ1B7mYB3x/DwoAFCX6+7hMZReLbPNAN1QF0t6MEAnWXsff9ieD8HOQuYY\n+dHgzqoaXR6jalN2x2czgEdgHOV7D5Bv1ZCB8z4gmncDe14CdA1nquC052F2\n3eUfybfiz/G758I4qRhXTOZ89tfVrlAzPZiTYFfBhdD7jA7RNr7GeuY5QuvN\nmeaH236z6zjEFXLnk9n+9Wb0uvwPppJZA6pkHtTVY/LrdZattPIMmJRrKsMe\nXBMsQMK0FCq1A2ltW4KjcZj39XsM89PGGT1xQoCzA5OaPUGNKHWky3Od7YvJ\nrVbP\r\n=XWXI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a3b72d08e5a8d56dea1ef647d0dee9db06c9da15","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-a3b72d-kpmsjjpl_1623081112787_0.9824015592578201","host":"s3://npm-registry-packages"}},"1.3.8-hotfix-9f9272-kpnoc2t6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8-hotfix-9f9272-kpnoc2t6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8-hotfix-9f9272-kpnoc2t6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0f822d2e96519a397f398cca8d41c42e5843a9e1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8-hotfix-9f9272-kpnoc2t6.tgz","fileCount":15,"integrity":"sha512-lKTmNhlN9ATIiJ5Uc/Lw0x7L7B6uNmC6AY2kzE7UaGU6FVQUn6bGfkrNDpCg92/o95w6a9mqVKfJGBFYERLOQA==","signatures":[{"sig":"MEUCIQCGJb72HgRAR+POwDSM6UHQzHiXUwU1j9RhM6zz1P0UNQIgVeu4g4KVhqictl6/yN3Z0nfr0yaKWZX0EELqII3Pars=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvxESCRA9TVsSAnZWagAALyEQAImoQGHYRn30T1AhnqV8\nj7GFDO56asEb8FWCsBfPiX6MDMlwgy/NKErvsrIfuVORtQXlZMQV9+NCGsck\nNucr7Bx5ctoaBHbaVyc8C4Opb9z12/C2n7y3LiVsgJ3ZhXxvP8MHDK4LLd6M\nG+TWxFea3vfXCbbB9AHBebilA0kJ7YWZKVwHA9LurZmv+UmtEIk1VwEC1lrx\nwWf8qJgHGwxV+7LHRQh3qs6Mm1Y6glX8mck18PxwEC/7As3FaFabzqxkul6M\nqL2CWrEZYW3gO4mslNUIfYDO7MBmiGCtt76/4y4Z9fWQpxoklvbI14xwNla0\n6NsNoBF7/eK8yE2bbhS62i6V0unSrCIPtYpG8G38HVbLRWlKthvTL9TjIhFZ\nO8pxxJP1kTV8o31JKAi6mgzEJu+Yb884JvjHmeWuvD94FNNKh/OG+xK69V8i\n67VfHo1uvWSKaCBi82tIaBsO/g7fVPuHIJDLEQ5JQw4WpejkWCovpdlfiAsi\npyGpijYlR+8CHB2Q7MXCyUR9f/91rt1vARJWaWmfxU6SybwtUH6MmzcfnIAT\n7NXfR8sHCwVDejbuxt34TJemPtptSqb4khUD7aGg6Urt2b2cvhZz1RwWz0NV\n5YNDcj/gyusTEDR06Kv9DpIZCvl7KZfDrkbFb9ZWbFg+WflVr6TSOCjk8AXd\nlyDi\r\n=I2H5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9f9272c5cc2e47e1a57f3938a70d084ace81317c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8-hotfix-9f9272-kpnoc2t6_1623134481798_0.8442797261185921","host":"s3://npm-registry-packages"}},"1.3.8-hotfixes-c316f6-kpnoewio":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.8-hotfixes-c316f6-kpnoewio","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.8-hotfixes-c316f6-kpnoewio","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a3c12c97fd455caf5bf3da00d92b349ddd8d6b8b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.8-hotfixes-c316f6-kpnoewio.tgz","fileCount":15,"integrity":"sha512-j0ZkS3DGDoyCIHZkmLuv9jpMxiFSdnFLrMQty5uMA1kEdYx+nSGyW+9BE6lkyoWOj6s/kGYuKv0tKGa/6v6dYQ==","signatures":[{"sig":"MEUCIQCjM9yRdCbwb/N37Z/HYl4z0TNzOfauHtx1A6jcHmFOuwIgJaJBjKm2Q8bzjuTomGsKWF3gf2fwVkWADraGA6xvubI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvxJ0CRA9TVsSAnZWagAAEbgQAILDIknBLbgSNUOLskUH\nsqj9KKUWKWG9qNK0i1ZzbjyXTYP7gWu3EfWZH72BAOkg5gOpYU3SifBsVOlt\nGWP0NpA33cC5NVr3xkGjG9gf37pHlgUdixPz+chZMKnqs0+jsQYrebldIdVZ\n1DOpc7Npddkqpi8bUafL2MEXkDlue4d5yI+2KCI2WsHCiedj0eosXwKqJJDa\nhdtOcsi2O2mYe/9oEO9Z76fetd21ZOpuVmB8lgzXIlXp0YxRYot3RIex2sA/\nm7ixW9OjSnra1X8VDTpn49EEK2mnPRPYghiIhHepOlU1Pt+3FYVn9F0ZoZ77\nuoV5s+Jqniy8bJRyjB5U2O2q1FjiHURkvEKs7IGMPeTZT0ryhZVsLrDLK23p\nPpCPlLUv44z02256u5b/iJzdg9bxAv1JhZ97HMx1ZLfKdqpOgGc6ScFtlMiQ\n3p+OKWmnze7fPKmTTZ+f6G4X/f4Psjj2TEC8wqikjgjgiOUo3lAbL7BJX+x4\n2+62iyiVx0qNEAVdB9IiyBBox5wcB1MduPKWPyXCMNLu2VVv54Vz/zM532O3\nLrA+NmzS11yE5FA7HUAN01XKXAF5DxZn1On1MD/rXqB7k61T3I/tuZVtPSn4\nL8v3x+UV61HONrlgi1CMtA/YZJYC+yaihYeP6HZwLyCgzXwYzEn7tsEML2B3\ngiDm\r\n=/uae\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c316f68ce5a0a50259e7bd7ddce19db6c57ba0df","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"hotfixes","@atlas-engine/persistence.contracts":"hotfixes"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^3.9.7","@types/node":"^12.12.62","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.5"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.8-hotfixes-c316f6-kpnoewio_1623134836401_0.6266029269202442","host":"s3://npm-registry-packages"}},"2.0.0-feature-065958-kpnsjyur":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-065958-kpnsjyur","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-065958-kpnsjyur","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"847ef70a9ba32b6d61245743843e4c5b1cfa549a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-065958-kpnsjyur.tgz","fileCount":960,"integrity":"sha512-op84w60QcqGLHJW96ZnwHaqMlKo9AtjFIoZTp+Av2r5guD08pvJ+pslHKO59+7DIGrcG6GGETNjPaS86BscmHA==","signatures":[{"sig":"MEYCIQCpPnmu/1jaBzrB+WPqjAE7QuA+lmhiVnOmQ/JQhEnx/gIhAI51UmPFUF2fMY8GgUW8bVeyNfLVLZTbddf0Ypp8B0sa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvyzdCRA9TVsSAnZWagAAJcwP/RToI+SMy6+2EDtB5/tR\nt4r14L0Oy+fbwLpDWRL9IzQhK+Y4dNVmbHWpsgfxSO2YJZPE3PWNmmsrkNaR\n5TlznZzFLQnH1I/8qTe5epIwUHk5x19EpFNHIGOoyAhg5q5tCV8+Ou4itQoH\nf8BtIvrZfr7CBK74U6QajXVFB3BdKowsrBk9NVtrmsfeB5WKrD/D6msnBHJY\nt17BloVMlDDtq3EHsbKkAi2grPZWERfh8+vVHa8fZ6o4AoMj/epOM3ndQ4a4\nZIVnTJ15YMJFoBJPICuOOrOrRnejH/nceT1SsKNj3wWi7V5I+Oy6lZRl7vra\nm2ycuDochtajxxqJJv/UwEqa2HYWnzX1K7WK+e/0OiXYjwCjd0m9TPYJYJ1+\ne3PRP4QjWgzWfs+HPDjKLXDNy2NDwnE03OMg78ZSZzfOw9dIKltgitLL3sO7\nXnzvZtamwoOGWRrME5bg9o2vHR4LjLRWhjyaRqLj7KP9OZdg+6loIUeWPRgW\n2CVD8NFzU76mtxhRmtQ8DWshglAB81zMCxhTr+xQQh/a7ANDGGfioiepyFzY\n6nT97sHeDnBzAZFr3eAa8NiDUGXSZ/xGLqM0AQkIbUoX4ceMqPAjTsDLbV2B\nI/KG6AgDDSwTpdEcMry86Rx9lEPLXJpHafA2vDf60WMXRwl+A2G+ENOwUCas\nzmnD\r\n=7vBc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"06595897aa9f888253d56f895eaa684aa2dde45e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-065958-kpnsjyur_1623141597247_0.04825412249344829","host":"s3://npm-registry-packages"}},"2.0.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8c7e8789babcd8bbca394b6b53d2cbda92dbee39","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.5.tgz","fileCount":960,"integrity":"sha512-/8xCWJQlyNh6WduOqNRHNAN7f44Eo38r5YebRtcdusEZowMhPd5MztTTyH32EGIgf+4IvS7vbS5A5POHqAHYDQ==","signatures":[{"sig":"MEQCICwakKd50LVuvrwqjmX5zmMCmhgFJ6Sm/3GApjAw8FWfAiAmQRyrxShfa2wQKm+FtlvspLoM2Ysk9TxgKVxMrTgV6Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvy6xCRA9TVsSAnZWagAAy8wP/j/QSE8k/QVGMSauj9Jj\nQ9WiJl/Zp3ggQOd+dUK3Gx4WaUUKCiL9fYBMm1sp48TCo6ZNLrSYq2V7rCmb\ns8OonWpoFEgQy1a/Nk9e7l6ygBzDgb20VOnv8+wkDVyevYWq6/kJXeRgdiKo\naqjC52g+7h8MSNYqZmBN7O5PaqJRmmJJ8ctE4qf7P+DnBrmh4CTG27qe7bqC\nrSAtSHpgfXor5pe30/I3Ao4B248/LyN2v4r2tQaQHkUtQENosueybYtZsse2\nlouzLflB7a5tWy2V8CLaAAgX/XQn7MNXSN9sgVrCzsvDoJUzLu2qypARuGnY\nWeow1Tbwqg3fAFz7x/q/v/+O+S+Y66/9XQufotggg8KX0A/Bbycr0IPgWqVp\ndmm8r5lj1znviYx47CFxPNB/hHMlW++y2Sn73ELxtxZ8wsoQLM6XiNXEUgb2\nYNBaEUU93nhDijSHYFNngtK3eI1nqMTP2604ll5sAD6YS3YUIbWJnG0shQoK\n7YiWSLezyDaebv+1MdL7ZNq6pf8/D2oztVBKT7QiXHoELylVK2k+VJvgtPkM\nChZ62zjgX2njjL5GSUge6b0ZziSJFaEec5pTaqBWaThfV8BSgNMN89JUrRi0\nAcbM6nK/EPB/+T1LGa7FI7xAuSCbeJmdnhUKmOCwtvd2y4uiJyNQaAvGae00\ngZLU\r\n=PtD0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3301732945e080cbaa92d79f0df541c0ab4f34d6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.5_1623142065126_0.06075625252880301","host":"s3://npm-registry-packages"}},"2.0.0-feature-5bfdc2-kpp2xxkb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-5bfdc2-kpp2xxkb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-5bfdc2-kpp2xxkb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e269cc993f509a89f632fef1074e453c8e580cd3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-5bfdc2-kpp2xxkb.tgz","fileCount":960,"integrity":"sha512-nIoY0i68smvsS9+cqesmzYMa7GvvbijMbHMKJgUTmbELoBS9MdoADaRDWKGttbbatwdQGSrUYec8aBwSILZ+bA==","signatures":[{"sig":"MEUCIQCjyVdTCSc0pyXCUOHrucE4n7HHCCWgjyi2MzxAX4kUYAIgSXzszUlSeHLmISYMEDQ4T5HNCvfhXBBl3kC9TAiIRvA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1603292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwF1HCRA9TVsSAnZWagAAYnEP/RsyNRma1gGHUZ+QeoIZ\nQqbxEQFJ5pTZ0RbSCTNFEGorSOirJswmDqemOYlBNdaU8LKW+l3A1sYnYvCV\nd8R8iB+EOn8h4bdVVCzGmSojEGRg+IeSjYRxYGcTetbfjZ8cnbFtYjePV9eH\nan7i3PT20q2wSNhUJQXU/PFqsKSb5r6zRTjaxyywT/lBaC88tn0yGNeI2RjR\ntWaO4JUZONJdMXUqTDEgi6iWtXIxJ3UACsf7Tmi6WEa34TwUQWJW0ZewY/rc\nOEjNUU2KHqH/UXbW9jBUss7Fx81WxNK3kIwo/wvDUZNTSe+B/xFsu4BsWMY3\nSs9S/NISk5Ku3I7gMGQWWgaQKBkVUpDzuEM2lt5VAkED1p8jtrkUlRXp7ir7\nBhXPx0hiZ3mg2IzzfPSfqGWOVsUY5I3R796ZPAE6QaU0+74r60kk65o7BDcz\nHVPgBVNE/o/r65Xu5E5OP8E0PeBpeUL1TK3GIe4J3T/fZqX4O/Osbd82XSUI\nY3/eesrHlxeHPh5Pn/LWJPHOxupKLwevN/pmHk4f0DvjpIIhnDNryasExPC/\nosvFU5JE69RrFhOcWLHvZBKll8jB3qfgJ35/wFqL/h/jR3W62QMhW60/XuBB\nNVMplCUaPgaZdWMGFxDek9ljcv+r6/ikcPklOC7c2p6qzDbnga3t1sNh8he8\nrA0/\r\n=PHyP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5bfdc226ed04416cdfb062730bee9113164f6060","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-5bfdc2-kpp2xxkb_1623219527407_0.11516370700948864","host":"s3://npm-registry-packages"}},"2.0.0-feature-6fd7fa-kpp3ed02":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-6fd7fa-kpp3ed02","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-6fd7fa-kpp3ed02","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6d80effc5666750915cf61052266511ce0294d03","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-6fd7fa-kpp3ed02.tgz","fileCount":960,"integrity":"sha512-DxcNjcHxq1OQgDFEOs0mp7Yi89G2kSWp+sZl6gsGSjPWI8M/trruAHNqEitwFmybTCri9qnjYxG7LBl+xUWdgw==","signatures":[{"sig":"MEUCIQDSMA7HVBbWoxgSFBBvt7FWUJCnQB/QeA4QHDymqf130QIgJXxy3rXg40o4fBU0BA9K0rYQG1iPUyRCq6hMfgM5jaA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1603627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwGBFCRA9TVsSAnZWagAAljQP/iUoZFC/J5twEOsXdzNA\nYOF/kft7xpVl7Ecf4UrEF8ZljBrgRltCYv2W7h4+4PIH69C0XpKL9Vh36par\nkFjI4PfUpwuWm1x79yyELuGIAoU9GpwiUqnBZ1nvNw2yI+WgjiVR0pK4zcq6\ngoqXM9/BTOkUr74CvbFg25NkyLkfLXYFjh9PJj7WdMxpzDrpCvBuaM+ZJrbz\nUFWXkQyq4OzVaVm72R4bpYUb0Kjhw74r5q1KoTA0PtZAKpo/jCR3E+0r/4I+\nVFtyJvx1pXBjwZe8gJXSw4f2KBntOp/T8MN9OpUWg7RTqji3rcoeFF/x4C2D\nWOc/ZUmK8fiNEFwcDzEkNs5jUKjr44XwWDc5jbnMp7WJdt29GwVu4PBHQI3W\n2tZj+4N/2QTn0HeaqTB/j4DwbwR7lwJ6dll2vBJi3tQbCSElulNcsQ4qRMCZ\nEXqtnRVPKTveuQkVP6/Z2geGCuNN5RbwAnuGDq6efxSYi9NcGzhx521dRAOy\n80WzZhn/Rt3XyfgdJLjobdMXmnh+zifaglgUYtM0wVI0Ax21yLZUlA6hR0tq\nEb55CxiDDy34OmIQvgfXBgq2tR61J0F/DAH5PH9MBkrnqF+49paYKrZpyR4P\nbnNRkQ7kjl/ScoCK3Wr15yQ4QWG/4aNk+JKyYGYAVVfKXJupSH8pCFsNd55m\n+HlD\r\n=OB23\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6fd7fa90b0147ec68c6981ea1c74dd5cac2d7fde","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-6fd7fa-kpp3ed02_1623220293638_0.043727888734429676","host":"s3://npm-registry-packages"}},"2.0.0-feature-624af2-kpqmaa6v":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-624af2-kpqmaa6v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-624af2-kpqmaa6v","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"13eb149663716c5d7650ab5119360363d94177dd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-624af2-kpqmaa6v.tgz","fileCount":960,"integrity":"sha512-NSt5UYudCi/VT73oyybYXIxJpMSKE5d0IbVYIHScduc+3deYs/AM8KUI3wyCWyfJ/5/rDNEFB/ZumNfSpK7wUA==","signatures":[{"sig":"MEQCICLKrI4HfBWQKCYdg6LqkTrs+/YcoLwWPOo/3mk2uKg6AiAZIXn2/XMMFnBlZUAB1ZlgiiF4De11gr5d1UhVfotcXA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1429473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwchWCRA9TVsSAnZWagAAU8YP/26z9q0fruWeRsrgTCQk\ncwbkYCCb7CpgC8F55gjnAEo7nE0jloV/WmfgTcn/m3FQpay5i4iVM/+Xecdv\npYXLCthm1UCShSrH2Oc1DjdeZEYFW7cdRHxNbeebE1H12fKryQEYHcp5wcaE\nzUuFain6EUpCdYOfNeM3nnWHBhICXkvK8x0t/mJykhBVsWjEvX5Fvmt2KN7f\nfoOMmZPyuJyzmM5q5BEg/MqS+q3USOky5QrlTYUJmze7+HTljHj0MlBOw7uX\nIpwvl7wMm9SFs5gbVjHb23k0csGOFdXI4GXS5rF3mjm4rCBLQ+mFCGaNllDZ\nsNZQ9vrJJp7OFVl6YD01m/7uqHIR+NwQI+9QctdVCbR+LYIfIE/sXf2t16Co\n7zpNzEc89kc0JFBXQAvip7mxBrcCadzu3Q453X7l5VZhhk5g7ZZBcStDItfN\nPqvcyc8SifRvSxe45sqFMHFfxOfWyS/JCfJMDJGnEU4GS4G+1/nI3D8mAqmR\nop2sLiGAjsWMQeWQUcP8+gDuanfwW8NZ0FHkJhD9BHrUBmhJF9rgLRIDtvam\nBdUA9F+bMbKf1naquUY+1BlB8KLKBvuDlh9c2cm4Q4z8E/IrLQmRf+8qPfgv\nimt3OHKNNMvxJIljl9URraxxtgG5OJ7gEf08J39kFmjVy/mLNy4IJm3gQ3CK\nVtpd\r\n=U80d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"624af2309c7518ee19a69099b88f00fe51682802","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-624af2-kpqmaa6v_1623312469813_0.7598325937307246","host":"s3://npm-registry-packages"}},"2.0.0-feature-03a83c-kpqw68en":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-03a83c-kpqw68en","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-03a83c-kpqw68en","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"973818b54e7da16fb97a47ac0697011a1437cc16","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-03a83c-kpqw68en.tgz","fileCount":965,"integrity":"sha512-6njSl7Hp0w6h+lLz/HaXqUFcrq3yqzJZIBAMQycPX8NLIVwkXfozrn/h4rDBUx7kxN32cKC/OEyi7CRgCnkX7A==","signatures":[{"sig":"MEUCIFzCZyralsHWK8RRoqr4x9aPVcUUQjesH4MV7Sv/WlwYAiEA/whzglVrQoOvAVpyOtq/KtiTQFb/sckvakPbrBz9mO8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432121,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwgk0CRA9TVsSAnZWagAARksQAJxVMx8cv9o2PDVwVYuE\nsvt0HjIphdAZ6tIDI5Oqk/NnXhIqlbHN8OUdlmYyXBv36DN37nLxP2/EaYzW\nBHCU7rHQSrz4Diu0mae0Nz9cN9lPtzakWB7y8PRhmJM+uaFeofClOKJB5lkl\ngRU0/I5Vf0rxWhR1IuAv1bfXSRNJN+txtr5JcsrCnhcQ3ApfAeY4YkOqgpHK\nRjT7bIBu3laePa9LU4ileTPO32te6zmBGJYwUUhDiL7c7rYE2LESTh0RzfGN\nxDvReuja6bxKluGDtb4mHcOuWLYwxjjkbBUVfoTStTTxAGtLztoxZaKv/0SR\nLj9DjiEnBFcQOAfYatv674EfYVgQhUPEVghVjpkKeC3DHeAqpfnqwVxPewUZ\nMyIYWWzaDFxvrMgW8VZmc5bUJvCAMHs5GSTASinrGd4iqXIyAdVrUPvgK0iE\nZnFnYn3AYfaoJNAPnueyGSvCpqYgSquv6lrXdSc4B6o8MLViMW2OwNhBPknN\n4AaeHlu7aJd3U74F5MFHJYJmFK3vYp80wIlSbF1ZsSMaqspQAdVDn5eXDW+5\nQ/b9pmIGsi5NU4AndXpYxvIUSbrxreKnC53oCbc5+GcTVAmbVPScbZK7sYdE\nH4FuRA4B9W3KhUGPWSGYzPOkFtCfqN4uMqqggN3+iR046FdwRP/7CW1QB8IZ\na8W7\r\n=l+cs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"03a83cc854abab4208120a47713acab82bfcfe2f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-03a83c-kpqw68en_1623329075856_0.6914914140734416","host":"s3://npm-registry-packages"}},"2.0.0-feature-a6a582-kpqwzd4i":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-a6a582-kpqwzd4i","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-a6a582-kpqwzd4i","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f91327bd5b829a726dd54dac7d77a0fb84a51b0f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-a6a582-kpqwzd4i.tgz","fileCount":970,"integrity":"sha512-R0rt3n4X6HnYi7embM1BEMT/EwpU+Tw8aIRax7r0Wqr5BIaBKyC8fbGUT055tASOFqV2ouX6hcWph92MjXjJgA==","signatures":[{"sig":"MEYCIQCnDenU73ZtiB0lJizzqDUmFSJr0x6v+L7+r1+mraYLZAIhAMEwIhBJyfmWxZO/rsDEJKGyxyDAKjaWct0WRvg8reSj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1433600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwg6SCRA9TVsSAnZWagAAVXQP/2bejjI84ZNKi6jNo6K1\ntYHjsCOzBeEfhtYZrlFzcMwtaHmS1zOUtSqeTKmwcPXrjsJbiflka8cbhDIg\nS/dpA69Fwt3nyXPl31D21ef2+4fZfSMKVM4SkSN7Jx+cDYB5Vq4yl505eRCQ\n1LcJpawWGsCqYdcuIhBGPUZO/QvUTm6GwM0eO7BaWGAb4FPYd5WnwnaPKWha\nKR7kN03uWK93U/xtPCFtNbiTjfR+90O4XASznxcmACeM/BItu27E9wHaa2Hw\nXMUTJ92Pi2o81zvyF1uZ0KHtUW7KlCfgFGqCL7Si0m/J2kJa/9FtuBhxub0z\nDErWczJO+Qj3syR0LkMUp4tvyQG/wL5Lw3Mvk672kEYrRlPdyoPg7JWO3Xof\nH/G9UjALLgXOERLX9NVVU7IgUyKE53aSPo21FQd2iPaZ2k/n7AJ6eXdgI+OM\nSlqIdA0wHPCWZhAlmZ10VEJwDoTs7pVWZ4X8Jjssoj6OvnyMY6E0U7zrRUK/\nRga93BkrdoX0Wt2YcAzWNAfpD6QFWutY4XA9tyVBS36A7VkgcK7hl1upHk4d\nS6Q+y5AjlMnroURYYtEb9LbEmlb6SZ7IejVkfVqW6cXxxqQyggsupSWvgURi\nHf5AvIAZsmjzHiRjohRU6qszo07r5TfUXyQ9dEO34Nz25CVg5Kyxk8Cc3TiT\nvVfs\r\n=dWjq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a6a5822c8df568db63a2f796c197c75abf34c04e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-a6a582-kpqwzd4i_1623330450052_0.7568426647934983","host":"s3://npm-registry-packages"}},"2.0.0-feature-eea743-kq0skrcf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-eea743-kq0skrcf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-eea743-kq0skrcf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9bc5aa775b2899f7e3a26bbafdf132fd6b165ddd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-eea743-kq0skrcf.tgz","fileCount":960,"integrity":"sha512-IjI/ugJrpLFlRhDoaLDmpJ/SE1LYDKxL3HJM74sw6BIhDA7L1SbfalSsSviBc8niuMLNXg/QZNdoJvdbwMWi0A==","signatures":[{"sig":"MEYCIQCwOhZnuKP9CzZ3E4NWSr9CmRjh5xVz5s0tHL7bMphJIgIhAOLxOYiu+jCQcbESPjpiWRbY8b7c7+0ozehmoXq0cV4w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1603627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyyuOCRA9TVsSAnZWagAASLMP/1yieGa3KVcfvc1CCMAp\nI1dh1uqJj+3Urqlrd8MMbT5m1hQ2RTK1r5vYiffOnlVZyx9aXlFTd7SNSl0K\nUkxBVGpc6vQxAWSLbXYIw+jFkIemX1DGxf2+5k3zfBrDKSa4YLZb1Dv8EB+u\nim9gDNYccXo5GnDmbmWWvRcPgHf7xCZDSAucnKC91Pw6i5ywEJ+JVYAPIUKB\ngYxaA7Ahv5YLX+vIX3cd8WoNJvwOUai0ua5MKLUVQPy/sXVx24pVl+08mmCP\nySinJgakwpqik1JGPcUf/w95W5M2H/vlSpcsYJymwNHC0kfBZZLtLrTpuquj\nqeL/2wrJRF8jovsHfbrUuBjdFens93uSoOlboYOHah3PArt0C2KcLBRo26L1\n80IaPu7dWvZCs0Z5JViTO/sRYSc55UtxhkT+R4nEyLBpTm6fdqvK8LfmXkYW\na58QzHHmRDa1mAnIspk83CJUgJQdV25xjxwuOgzl5+HAr2mcG4Y4y9gcC5L7\nmN/PDPiIjivEOBwvuE30UbXk11h1XbBb/lajYNHvSuyKR/t4isLzg9cnS/zM\ntz8lU1TaT/bXtHG/ccZBSYu6eiQHOxC2AIKF+4ZNVGGhVrt9neiLekCWtNWz\n1eX4oTcTar7ZrDPg8M2DeqKfOrRBwJJTd6RHOVERxWGt8Qagr0VG1x54WsIO\nJ9rm\r\n=8hUy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eea74359ec27d9a8a144aaff4d91b1542baf4e44","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-eea743-kq0skrcf_1623927693515_0.6372637901329723","host":"s3://npm-registry-packages"}},"2.0.0-feature-a3f451-kq0sl0dk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-a3f451-kq0sl0dk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-a3f451-kq0sl0dk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"424b6a4520971ee01cce3bcc70f7dbdd639fd07a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-a3f451-kq0sl0dk.tgz","fileCount":970,"integrity":"sha512-QgVUihJ1ojqLvz1Kn5diJjwcdcs92Euamb24xDKddnSaumcC7Mc8wmB9CRMlR7Q4CsLgKNUWFKzGeS0ZXeiiWg==","signatures":[{"sig":"MEUCIBQxfgB1WR1Jhne364lc89bZouoVHieUFbMzkYN7rMBPAiEAzW3eIqayrD2KD5WTh/WfIPfm4M1DrShAg7NQLBrXgzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1433600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyyukCRA9TVsSAnZWagAAjjoP/jmCkOWSqbBK479lNcDG\nghqwgSZHGbTXKyrf7RuYfaIBcvu4au1vUqTID9dqoDT2bpQDBXR/jlcch5lQ\nA38VL7ZiBCiMoyG5vDYbJD770F8LupE20tUUy+3dU928/ZWURzMFQETEkmv8\n3DashVj3pRTKh0niOOqiJFcVvXtJsDCR237PfSILwnDL0jqwiOOpYqdFXSbg\n2O3PUyjHFcWcEQ1ClMbu7zvBx3lBM62bjBVAH69fJ9DoVwyyFt1GmFTc6jlR\nJ/XP343D3Ivw/RIJvjVZv8X4pDAXzjyEYiOq8s3q3nLaHBOK65RGsCHyZv+d\nzwm7gWVSIgbcQm4LfVygFzw1L5EpsLCaLKwmRq+CmJdpp9ms8E2nu9MT4JX/\n5Ds4tjMQipsqnMa4a4K7hIHWmmB9KEg2KZ0+3cZaX+F6IdWdaaKQNjTkWIMw\nZD+v7qlf6N3TdJbK3siX8mRm4b2mbfY7+SCVb4PCbhQuLBV8tNjplwnsM10u\n0s19cI/mTpQhZx2/rmEAXTiLbteuLoWLVmL0DdwxSbiYg4MpYLfWy8WA5MCc\nNmJKu3xKO7OoGjtclp6z79tN4MYpN3NSo62wQVAwSjeQ1htNv/FcOO0EIxFu\n1AIpnEsfE1zyxHkhAiu+lCOR3Aq+87teG7+SSwShHuL0D4RR2hwnIwr7sMZR\nM3FV\r\n=deXC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a3f4512f65ac99897375871c6a6b40a72febddeb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-a3f451-kq0sl0dk_1623927716431_0.27974750968972995","host":"s3://npm-registry-packages"}},"2.0.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"55559e2f8369c5952d6ebfb63b16facaa0508e08","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-beta.1.tgz","fileCount":960,"integrity":"sha512-LkUabjLD4/S+2sCu2Ov24rv2oll8eXllUFg1M2WIP7HUBPBU3epJ0PQZOQiszL7Embduh5N5V+PFqyUWoz108Q==","signatures":[{"sig":"MEQCIE/XtbmN/x1L3r3scJjD7EVKipCT3CDv4+K6W7T6dCnUAiBCdUSROCvvRBx3/vXFIqr46XA0D5zadXG6mD0ZlNcqMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzKtzCRA9TVsSAnZWagAAvOcP/3aSUN8VV2i2ExraA0vT\n26SciYRruB3kmGn378VXHYMooQWYExSLEXFapqB9udFrrrWSuCNK3P9zxOhh\nECrFcPSJLmrnmlv5bUvVXSbHFIizhH30ww2v9XYKTZ5KZeQUxWXvM4zrZjQg\n84vYn6cVbtK4+ZbZwkmxgPx/tZAjAdWJ2s895kBt1UUP7b3DSVsStk2e8kUu\nDYLpQVXOxI1E9pqsbM0sov6qDibGjpyzZXZ/LKgwJ6lQmsaNlr9yxbyIhkOc\nh5RoZtLMnXt7aM/JqXqXv55oR3IFvrVFFlNL00KFtUrB8uIesQX/hKPV220H\n0wmVSxVAmx/NKd0tnLp23kkbXW+X5UunFOeU+4dvo5vxoB+Zvl46XCrkX8pC\nFUjINz+eHyHH8DMKbpAEZ3WN6U3iq5s+TwheSl0ONco1M3auXYPBd5s5PB0O\n1Q8ZFhHdpd3cFw/78vDwPV2yc0WfbvjxKvw/dUV++ni02+AGmrWXd4TFyx9l\n3M+WvBbRa3gIbK8dR9jqytFW/OvbUO1ZL4L9M+SXnu1/afAORTJ1UHLSQCtp\ngfu9H/qcuxXlrXLS1XlckIUTNOZtDsVn6K639SrDGNHU5s/wLM3fRQmWXqzL\n1SxxEBbeoRzV8Jo4T5CpZW/IUFu09Hdb9TEG+1U5/qHrUVZqpE4xmk+RlSvM\ncR8W\r\n=ymQ3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ae4eb84a3be10a89b8a1ce8f005ef3e088bec252","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"moment":"^2.29.1","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","fs-extra":"^10.0.0","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.9","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.10"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-beta.1_1624025970721_0.30900408538643553","host":"s3://npm-registry-packages"}},"2.0.0-feature-be4534-kq6mz4bq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-be4534-kq6mz4bq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-be4534-kq6mz4bq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"866cdf74f357cd8970467085da6d1d42b25e3f4d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-be4534-kq6mz4bq.tgz","fileCount":960,"integrity":"sha512-igvrnPSLqEc/e59qIoJJH/KMOx8zKGL78I3ChWlqBcK6mAiXHeTR+dX+VJaVOAH59krJTlwfzKHXEzj7AX9vbg==","signatures":[{"sig":"MEYCIQCj7cv2M4qrnx2cDXpmlWPU24s5f2ETguBI32lUJ1repgIhALfsFW6PJDCkIM8dhuqIwywEdC4cSd2fYrChUxr/BCGm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0I/8CRA9TVsSAnZWagAAaEcP/iRnmMxhil3G31Mdys23\ncR/9kcs02te9G1046kSWd2RSOE+NjP10IXqJuLMrx1G4EooM6Tg86elARIir\nS81/PlqFOc+eRSoJGP5SpvjvKifEa1Mi84/0kM4lLdv/LhqlpCqKHRo7dDNM\ndxzBTquVajVTGXZFwE8mMQ7qGgH6i0NMk9cGSnkb0+9blyl99kGY+INDxnzs\ngnA6sS6d2NNPy2ikVDI5xJ1YIt4d0NTLYJYaI5CJvVcgW1t1z6gmQroG919A\nM2IyY9jgmmtG1lnYER1YwhzpDeLH2Pw171ffh/qFVDbio5+2cr6+gr9IKstC\nEgp3MBzkY6iFEUHn+svjqUzhuyqTP2aS7ier1DM0qoTUGxRrxSuiSD9bDDeN\nyxC2Z3b/lcSMblNDHgybfkXbyvsk1/wEtC0noE0QxvMZk7MjoM8wFETWmQ5e\nTCkNQHQgmHiCRvZgzgrzBPtQf14A6f0Tpv6W1+FR3lmQYt11E9NxsldcCQwO\nWVtXHV8uPLm+/X4CC3Z9NdCX1PhTYYMs85ymwRUEuC6xXuQ/p+AWfk74azgS\nC5g9ZAW0ewjD/k5aGnYetYL/VVa12jZdMWDEIFmFgYsWcb2WfQ4HEWnSiioA\neG4k3L7MROZ5oLg1FDc1Fmt+bpPiWU0DbRGK8hZgPAfKqy1NqNHtG3ekDeYY\nmwkP\r\n=GV+b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"be453415c3fc5a581b47247eca6ecde7f97cbe4f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.17"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-be4534-kq6mz4bq_1624281084008_0.7737648711824303","host":"s3://npm-registry-packages"}},"2.0.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"83af17b857f5ec3ca37ff3d48f7b93888bfb02e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.6.tgz","fileCount":960,"integrity":"sha512-pC07nCV8953rRy4/HAJfHXtrk07V9DrYXf7fhkVCcZQeT3N/uRpOdynaT4sHYVoGErKGH1bBy/8RB8T/+19zjw==","signatures":[{"sig":"MEUCIQC5zZcZQe5BeogQjtnzCpqhAQP571x2gwloIpkX6X4C5AIgWqVlOmZsdjEfli+Tbf3fd5eIx7+8QLfmr3i+aWogsq0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0J1ECRA9TVsSAnZWagAAgrwP/A6NPx+CyyE4PxTzaNvu\nqzeVd55538Crc87UwYRkyy3C9W61gETfnDT+4nIZXbbl4Wjz+CwEBA9QK0le\nEo0r5EUa63QvSR+tEkWWzdeRh8XZZYcLlHVBHHdFupsk+dgwexAzlwQZd51z\ndV56XmGjohikq0/QqQXiS8wYaF7183ZfP5FV0uEJ0JU3bJ2zJte2JCjufg/m\narNk/X/OnavjbxSJalxDK95xqFWDZBTrAGog+yRB/6TOwZ6WNaSibPQdsKNy\npKZHR43xsc8qvDN/fKu5bkp0ku0EfneOgQIykyu5eT2zlPAmVnfHWAdkamb4\nDM4L9jozaPLx9haB1t2Rx8Qz78M6KvAs1Z5YTXJofTRx17nGlgRCAcheUftf\nlaiRw8jMj3XCoZDB258N50phoBCz7bHD8dCFsiqCm9Bf36MCNTiwzKCl4ILS\nfOo45SgmrnmMP1l5yVaXhGU4/uDKew7nbNq4mNWe4LK7kvftczym4FOl9IPN\n8X/6zMsncKKGt7Sm/8pakR4NMsUJHai9CZ6HOmzGrd7K+L0VNMXuxmG9MgxM\nWd7vvOCcmEteFkEt1Gj7S1zO7v8a3aSyftdLGw+aIBbhCM0MrI7TI0wFcJHr\nslXVC9KdPpFGC45zBaIXh575F9TkoeeGT8ALhQirsI85cN20dgQsUbjgkcpZ\nbo43\r\n=BGd/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eb41b7b187464d62b4631832afd58e5b93414368","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.17"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.6_1624284483283_0.49812180729857003","host":"s3://npm-registry-packages"}},"2.0.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6294eb2eac6c0fb8245e8208a40e81272ad57762","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.7.tgz","fileCount":960,"integrity":"sha512-bSjWhzrF4xkzLlLYG1itVPXmf0ixQaWuXy990Qp7Ivgiu57viR3kAfbf8dpei2KgAkAf853uV7FLWVcgtKnb5Q==","signatures":[{"sig":"MEUCIQC8KKzSVN6swSrI8OxA4mfUf9ABKgkXaMzN5pe7m/KurQIgdj7KGU8uiwOGdbZ44mvk3WPsPCfrkUP26IYfF/VP06o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0J4ACRA9TVsSAnZWagAAJ3gP/jGHM2aOsp8FW85NGD8j\naRg5CmogO4ohgXGZQSQ8l5jDxSmpjpbqAaLIibIGYwddz7sMzkXsKPvj3e1s\nm9ujdDjY9Bsy/2w1Ybyg/Zv1WwisEcAJtsr0TznRiQlnryJA9iH8l31jl9B9\nF9HPK09MTeANFy5Aw4vjJG2ZqSyGK7vuY9vTxWpPgvyshxVx0DY73Gqrha4b\nuG0LACe4j/2KOVGOo7phZCbf5JT4ArblJiCJwTrsL+eind2qZ+yrT6ptzRKK\nefch/VxlWzOKD71jCy3LFz65vzbNSexmeN55Ime/V+473rDrUYx+NVwkGyGn\nwSFGLlNTCS8oUh6RbGauCFl2C52EpK1SvHaoe4Hz9G/oEZwtvU/prx7vWCuj\nKdnmDdHo6c8eWuBD/i3ps+2Mt6COBM49wOPcubmI5itLb/AWccKFhJ6kM5d4\nMctFKiXC+bY3sbeyci4DbG2SeB2+F1VE1M20/rV4tAFsmQE7QL6vhhszSssh\niIwba3eAKomb/7NTcTNB1dZv/dSVNv4/g327h1lnj52qn4KH38te1EUdJ696\nB58tASJWTr820X2dR+V6TZrVef/6mhGTQpM4uplvjzX+QG6/cfPe8e9wV2py\n7hQE6FRoScsmbD6z/0XVaB8LV3HqmHu4xn0qozjkt+PhX4N4ghUBHx/Owq8k\n11X9\r\n=1mS4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7d4cfb5df413f9c9fa8793b3bbe05de24cbf9db6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.17"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.7_1624284672206_0.9317481899407025","host":"s3://npm-registry-packages"}},"2.0.0-feature-080d7d-kq6p75bk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-080d7d-kq6p75bk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-080d7d-kq6p75bk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5dbf1fa91ce61610324464deba17a1867b0ef04d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-080d7d-kq6p75bk.tgz","fileCount":970,"integrity":"sha512-TTJffN4x+KOMEltAeX5XzkmdX79zue45vMDKeZm2uJxo9PKRMUbH3q6HxDQufsW2UfybOHuVELobzSEzNpogdA==","signatures":[{"sig":"MEUCIQCNTaKsP8uOqeFAPQYCIJ2nxUgbqTY/Y7RV6EcXpNOp4gIgFmzBr3P6r0i8b/cieU2PMe/j99BiheVMVPRwn4AfFRk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1609729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0J6eCRA9TVsSAnZWagAAhtEP+wZvOiQwcrN+ZOGcCnry\nh7C3a2iM2XZjQ0p1XmzpqBi4WKLiz366q5ka+1YnLdEvszZ/tVM6PICA2m2J\nY80EwAAPUKzAkvvrN8+BSrSSX4RHOu9RUT2p1v1cYX/U7HTkvCezJiC2D6nh\n8MRftUtV3qqIy9y06yroZVg4KQcIaE6Qu3yviY3nQiYxX5TQ8EVNsDuYEQBn\ntjICamsJ3q0R7jqzQBjn3Sd3/vXAjY0jyEGYugwJtJnOOV93q5FFVEMXM7GN\nbxzVmjsxa+/qWdsI3uG9mEVFLCVOik7xDy35NZlTfLtH0mR2YeW2F5G1n3SN\nxrT05p8ZQECFNmWlVp+NrZk4XWIJMFNIogGuCA0PlQTBiItJH1FvwzXxorlJ\n2g0fOMZuaaemiSGZzCzFgtsm1QfdmLOGqYUdQadseJDz5OhYmGWZPQPZFfqY\nuuGs95BCpJINJXSxAXUzh9kgPOyZUDDtp1VNWBMdmeJz88QMIioLO3MUNpWy\naRXG6XpXd1/wHxystnXidluqGM6+YyCX06MS/+h726LB15kJU2WwKSN6r8/r\nVEb/9sLJhdZY4NGoFfQjfmBiZqj5KP5iPvNNmWK6YIJ+WcpREDhae+YRfDwJ\nt1ZvfLNo/dvDHHHQtfNJzQ4KtGuQ+4PwtVynK0bjOrKyTZnrzFze33mK5cPb\ned4b\r\n=SEkV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"080d7d7b60ed1e8daac4c544055b538a03025ffa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.17"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-080d7d-kq6p75bk_1624284830381_0.014958031834973351","host":"s3://npm-registry-packages"}},"2.0.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"87315a258b12b1a9e16150dc1ace2f2d70dc4503","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.8.tgz","fileCount":960,"integrity":"sha512-A4SKUXwdKgBnvds0oEgDcgdKo23dXu3sN90C+Ol8tzQDLUUFMRdpf3bzmcYqjhu2XdUj/6JWa+HKVBgyDY+oUQ==","signatures":[{"sig":"MEQCIDvKRflM7rm/TnQ8KWbya005HZmuhLXaaX84/1nEnoyIAiBR8XSaBfsuX+A1TAXOaqgU4Ep2M2UUyzjuJQ8Jh7E4Pw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0eHRCRA9TVsSAnZWagAAwZcP/1fKVge/pM5MIvKtnWwK\nJlAP/svWn10E95++jeYgk8coEYEmIU8soUUaPYRu84lfzFWDN/82Xl5VfuD2\nr8SW/pL1WkPt1q5gszn0+Zv8I9J/5+gJ6+t+HQ9TeFRtRvn7J8ki4xcbdK9+\nKfpBMLgGUMbP7ao0xi87SAL7n9+KcbEjPdqgJSJQNoZh0HzyUAjkQTZJCM6M\nSMzxpR1FGsHwq3LefTOSdQ56XAgsHRImzRbOnw59BeJBn6yIrQBNfSCReO7t\nJ4wIsHS78k0UD1gliaLDpxEf/aDocXCSWtdiHDCe9iqzfiY5zg1HHTGRGMvQ\nBUnzhrAxPOINYtehsFsqraxyqGYKAnEoitNhpJt6OpP2q1ntnearvdOrmpaI\nlfqJsteN0+8YHQCYy4340Cw/EJxoiVH7zfZeMX0SzFjaATGZKnu0CLIWMb6b\nrfnRS92wT/2zd1YIjo8annQPvcbnCAYXwey+ZLhJmrzys8gvBMfamYuZ4NjS\nC4IQkBKd1H0UfIWu0cyDnZjccCBlzwkkxkL81qvcpJ2sh2HnhTTxfA2LBdAJ\nxJDUIpcCkgaLDlq2hUTBey0AhlGcUaToQgrkYVi6UsbKPIHIvuuXAxyajn53\nJg8nnSEWEA7xZKsyp2pixBHEN1EuNC2iGH5vxlt+GdwJfEQdazQPbnRznmQK\na5sn\r\n=x5GR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"45916938b4823fbdb127e9610fa3fcf6597cfb5d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.17"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.8_1624367568471_0.12090321900798529","host":"s3://npm-registry-packages"}},"2.0.0-feature-0f5459-kqgck61g":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-0f5459-kqgck61g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-0f5459-kqgck61g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dbba06ee780671dbea4be0507edb3888c918ed89","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-0f5459-kqgck61g.tgz","fileCount":970,"integrity":"sha512-OlQq2UUCp07xF8VfMS+Qe8CkXIshQzRdzWfJxIGAOODDHxXhNoHze5rSLjNLywmVFss803guPQ7bBN74HUsjqA==","signatures":[{"sig":"MEYCIQDbRqxgFeR88cRTaSWqRKvMPfPBkR1+FpsT1hfn1At9QAIhAO0wGMVDvEmYILYWnWVMq0AgA3fydKmGFpTD1Bg/I4rC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1609692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2YWbCRA9TVsSAnZWagAAJzUP/RUzuttR3wLhht3IRfk6\nvocqpFukPLGa5c3U8XVMtyfVDN7sg8glaKSKvNyM/SDMnt/qm2oTW/OaswZ3\n8MiK7FbP/2K0kdRoFjEX2Rak4raZa3uRuBQX2wLb5U7xkarDu6Kmg9XUp+uU\nSkCONitrOHIQJNuAsxQ/zsBdJKw5v4O9Dcvcd8yPMY3/4FoqT4Ao+yPyqpew\nGu4YYaoJf7BDY9TYOD+l2h67qZB2XF/kWn+qiXZXgNqoViESAtLDFmmx5W3k\nQ2rwLvBDZpxQYa2OwDFKnByO79FQJTdHXdPMvit1fv9dfrDSo/vff5YBn8o1\nbuD/6YU614iNmfk2Yd1V2dtuqZXMfYcJXm9o7ATrolEVssksa8QA8CH7iu/x\nNLppSjpbFU1rJ7mrUsUarMLYCsqXa6CqjvHlRw+RtGOvS96N5ctInvIU4nLh\nc5GIxy4CinW5OJVxVIF4FWMJIIZMSdIXqFJkjdXZ3GkJ9RY5qfhHqaLl+7IT\nFJKZv+ezkL3j+f6ZjJ3z3BogdZ0b5nDt9vfARkdpZC8ecjVrHtKMhwzK3OBY\nQjXRA/XNG5GPxlCqC0q2DBNkaUCGHVEGXWiIvPZQKgr3brcIIpfFPO7dM5F/\nt8YVLsyIdXUDElUElnxp+Zxed4BllTCuAKosgcTJiHakokdxuYnXcr/+ICDN\nt/N0\r\n=Af0j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0f545955075041c5ef9fd28b5ea59e32bfc1241e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.2.4","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.17"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-0f5459-kqgck61g_1624868251116_0.3391456790740368","host":"s3://npm-registry-packages"}},"1.3.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"629f25730a08dd98f6790886b97531121c391c11","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.9.tgz","fileCount":15,"integrity":"sha512-ShD98KPe8+mgKaeWP68gnUFy8rRtcn07+4OjPSL8dOT/GHx9T/9XiaRPxwG+V68FE0Y7zvMEgxHg36K/7J/VyQ==","signatures":[{"sig":"MEQCIDFOptPnQufzIrovuaBI9zUj1CI+NDkkf54lnKjDwje4AiA63Bc3E3Vhyl+YpgX/Wa09xwUZxcUN9Of3G4bbPNKyoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":562280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3bl1CRA9TVsSAnZWagAAHCcP/jVezidUq3xTSb0KjMfl\nyUEPPPPBudfw9+vw/MPpw/w7Ly7RJLK/BW5CTOPtJF91ZjZpp4ygbACo4edm\nhuv43M7JyZ0K+4uinD3EGpGQhvO3n95dx0LMIhAqmaTPxaLsI+CGiFSyQRmA\nXxc1yoSMns51uPx6GmOU2K4SCEMMaUAI03mdqPd23vDlHSU09bn3jrXd7CiV\nu+rGV7GfiVajRAym9nSiYEmf8fUjTOL4yv1ZL9EJbuhX1B1Co0cJUl0rdUPq\nKZMJPy8QZ65gR5RDoc/N1QmtGxxsHZGwW6iq/T9CApHvv8lEUc9BAQTcTQS4\nBYFRyVdYb94kKxvhtAIP3KJpTsjMA/VVsdBqtMPM40+JDaDsRFWKSKYHh3Gz\nlpJITzw2GtBpoyFYy4sdRbI0QjooWcaa+ivo4zUFC9vtUo4XzxCmgSrZ4GHy\nsHmGYfeELYjsER6rsWr4jJnRIPq8/wAY7PfVYaCKJOTzNgv+HWOooXl7c3rX\nsKrfJLivg9k0MtFL4w0QEWfytzC/g10OFqdhwVZPwcRsEG+38jfoYXoui4Na\niTxt2paM/DksWnx8mxjF2oTbox6wIpu+fEoNeRtz061BgU5e3wtn4DhCpywy\nV7/TcXRcdAu3vR+EZYUkNbxjq2+0h1MkipLLq1EBt3Dqd30plPouXZ6CrV0t\n/MzU\r\n=TsSH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"e5fc86d91f97e4f282a4d08130910fc400cfc145","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.6","@atlas-engine/persistence.contracts":"^1.4.10"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.18"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.9_1625143669497_0.002344256817441215","host":"s3://npm-registry-packages"}},"1.3.9-hotfixes-85ec58-kqkwpzw6":{"name":"@atlas-engine/atlas_engine_sdk","version":"1.3.9-hotfixes-85ec58-kqkwpzw6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@1.3.9-hotfixes-85ec58-kqkwpzw6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e22a06ef1ce68da489049cd6f559caabf33aa084","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-1.3.9-hotfixes-85ec58-kqkwpzw6.tgz","fileCount":15,"integrity":"sha512-c8eswTKif/lD4O65rQxEW4e5IvhqDt7UbEoRyaFKZ3qKZhswAzmBKPFzOy37xIdXwutXZvWoj1UtuvsvKitmdw==","signatures":[{"sig":"MEUCIQDMMjJ481y6GN86aJDrJOnb9mNET3fHvQsnK997e+vd6gIgXfJ87QOZO4FMcUq0TZAn08UAJMJDeZ071LhT42ZAzEk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":562305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3bqXCRA9TVsSAnZWagAANdQP/inogm6b+Seo4unjtwhb\nabVqkKg3NRsWPotXGJy8EIngWrP/t4VutCHwCsDeySdmsDx7Rw5aa9eqsQ32\nbt35wkSdpvIWb7htcoTk6aVayqBmILFju5mh6DFcDZuESSd0oE6Y9KCDkpbQ\nc/jBPO5ep0+eKErHU1QFVDhmZUx1psb749b4YUnyhH3JjzaZJUxVnvwOFtPO\nXXBMAozJ7pLc2whZGiyLr+gcPSDw5txKtgUpN20nXrju5S2+WSaA8AwzfDAz\nG2msS14gaaFlECk6jvpsdnwXuOTXZ2jPF1lef7xEUgokOS7uo3HD17AQc126\nat+yUnz31TZdsIpBS0q0uiVoNZp2d5fHpW8uaX325ua46DpLpgZogvsIYsEU\n/PSWnsTeso78uI1FBPA+obb2m4UUPu2H9nf6lo8fFm0Q23W0qU/uY3djVQsY\n5nckt0NzweQp3e27UKrH7gx73nYflnRHyTLVkoA+u6lkDNaT1f69MT2kzX5m\nxX0cON0HKfeCQ/qRG8CgU4z2qFa6HCV34BaOOJur2KNg6BzwzsaG4x2OSWHj\nRQHbji+og9AJN9h7l171FbVUvlAEyvhtw/NX/VRVvwqpET48LjQiFiY13eZ4\nCqHSCw9WRs9eZ3wtYFjAWnsKzFC/y5RdBw8Sh5FPwnXLOdv68RboaPcQ8UlO\nAble\r\n=ZBtY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"85ec582201c86686de4c7f74eb0947b0cf3aa46b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"@atlas-engine/iam.contracts":"^2.0.0","@atlas-engine/process_model":"^2.2.6","@atlas-engine/persistence.contracts":"^1.4.10"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.1.3","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.0.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.0","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"12.0.18"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_1.3.9-hotfixes-85ec58-kqkwpzw6_1625143958593_0.5051701231588894","host":"s3://npm-registry-packages"}},"2.0.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aaf7c8a56e213b2705cda5c8c5f303a703c10f80","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.9.tgz","fileCount":960,"integrity":"sha512-C+EY/M3Cbp/xJk91UEFw008tBwqSw9zre9BS47Q8Ev5NtWGbDmYO4wXlE5ydX1vFL6zjUEhOXT8ugImNf9j9vQ==","signatures":[{"sig":"MEUCIBExg7dFRf1Osrc4Fpl5WxdWXfbqzA6EkELuSq49qsZSAiEA5J9UYatlUyflWkZHO1f9uZPwiykoek472LNeSVeJ2gQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3bq2CRA9TVsSAnZWagAAm0sP/3SlWwEX3GLEsgbCDzDC\nGQb/TNT7fh/JWhWmj0g3FYgX2dpQLcOdVZmlUUjQlOQy/WUKQDO634CX1zbZ\n+q6QJ8VtQg4IbTM6U1OyKNDLJIaAEl5zOR5MXHhOlTwr1WZM4BB37OB9zjjt\nVUYVlERCyhB9KiP190Zp3Q1rfZYc3MWvw37o5MsBDOpZwuaDYLr1UsZsbFTn\n2f78af1SIM5LV52IImW9AG3ZnivJ8I3MUfBQHXS3lfNCWV3j7q12DlAysUlG\np7mlzmsd7TIDnW/GdibBKz3E+uBp8MHoDWMRueEm8HDGx6ijOhRvpndE9z8V\nS7qwTXJIcI05sAeZFw/RYiTldI2En7gC7aLSIyO/pE2g0tyFktTeFNc+zwx6\nWtRglbcHfIHOGVFw8T5I21Sg8R6qUGjTW+f4HZDok0AjBmPZAWxadKX4MqGs\n1jzyC46l8k3cvPEEIs5tqLp0IlNh7sW9ii1KDHg1rbg83CD9ppCi1c17VPnp\nloDkJMZUa6MjUMPMRm1FwsSMeqSoJWfdJzMdFz5qhxMAtW+pJ5KnWVOo8sja\ntcW+6rbCP2jhh+24EnIajUD86d8CdMRadL0DhaPU9xnTQlODMZeq3Pv2dGRf\n9Ny8WvO1lBkhO1sXL6NniYIU35XJ2/0A6m7OwNBti8lQ8XrhhOZzpZ14/1yk\nHy38\r\n=6RYK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"00481de8d5fa4e593a89f9ad58604ad88594e166","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.9_1625143990254_0.822603231312856","host":"s3://npm-registry-packages"}},"2.0.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"93c5461037b7830c539d2e4c2e795827385c06f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-beta.2.tgz","fileCount":960,"integrity":"sha512-ABljCFq5ual8sG6QxfYQDbQQ35ATc61mz0COYBB1eyys0+GGETlQE0bx3zPKg2puNHGqQhobo6JshLls9aNZEg==","signatures":[{"sig":"MEQCIAS60ksst99ix/A9ci41nKg8dVz8+2vbBRTS70Xyr7sOAiBweuhvybgT5FBQDk1yGPXQtGjQIyIqOJnl8BzdYHuDAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3brqCRA9TVsSAnZWagAAiG8QAKQp/NwAG5WIEACMBoGA\nb8KMsk3UdC5QtwRmxA7oVtQ/T1cdS6pJN+5CCIqxKNB4UPd98/rwk/NhIA7Y\nFKHEe+FWvhyk1X6tMG/LcyGnxkR0DoOpEhOqWTmd6fmhywQP3Br3IQOg7n5B\nGZCSk2Bdx7yikOAJytPTJUYNfdFUwBfT4fLyv4z09ndj9uGvmk9u9hGI5vRs\nI1gvnjpSLH5iEtxznv6QCGxTe7zjxi9Mkk6qSBlmTlaF0Z9CDweLuM+crMUY\nhCidIpscV+xRqV8mT0h6JicBRfUFOQ4sHWIzv/piOKFgmhCCtV+TWFABJ5j4\nO0nQzqKmgAH+nghjek2UMuvmp/SHPxL67BE6WeYBHg9HCD4mJxVwV+69XeT6\n0cbjsNdAlFWad502ywYr0y6Gu/ImlDnvoLVKKqcyKaegX8mDdlsOK6zYljtD\nLGv+0f/XowtCWjgww3aNhx7oWw03c7rXeL5RjPIRReBa5KE1ysBfj0xVSJMH\n3cE90q0KohxYcmFHzo2S5oZvry8MqMmpWtdgiZDvnysF+YlPYfbkHDo6vLTO\nYXf4IREIpwgBjeO9kDfAwvubHsUjXFTYOMvFu4wsw+52bZqSphfeXC/Gs7Ew\n5X9BIvvgRunm+rfheIYAvpDVIg1TVzDk/zLxOtMT2hoYYQmlwYwKH8hDp/LC\n+HzN\r\n=0Gh1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"99407658147183357a22c77be817c0bb8a708faf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-beta.2_1625144041843_0.6863039299189713","host":"s3://npm-registry-packages"}},"2.0.0-feature-1324f1-kqkwufib":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-1324f1-kqkwufib","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-1324f1-kqkwufib","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"43970e18d4b3675d896e3a10d06ceaf22064fd93","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-1324f1-kqkwufib.tgz","fileCount":970,"integrity":"sha512-SFWd8CUkr46rCuUvi3T57BTjbpyOq/LfI8jpnr2KW7HtrQYfzcDr7miLy2vzRGd97JA/cbHF/JgwM7xbVUJCew==","signatures":[{"sig":"MEUCIQCGEA+KOjbXr77nXIfPen6yELOZJhGy8HddGOlsG80d/QIgN5jgxAyfWSW5Qvew6dnVRsIicc5WjW7GyDlZZ0VK7q8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1609692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3bt8CRA9TVsSAnZWagAATkwP/jB2SHVISkTIQCWJuhq6\nMObVoFgGTOK9B1ehV8M/hTz06S9iYcXmNsrx++ENVmodlkt4JV4f4f/fXsNC\ngy/d9U1mNnS10ByZRtZ9DdJAA4UO3bZBcez4IbqtcqrAfnUKkEZtzI9QaRAn\n1fF3OI/yCImMe2v2I0noBEkMRnYZNrM0S3LdiH7YXyeg0EwrII7NvQFmQ3jX\nuineuK8P9Bdg7JllIpnVugapUx8wlWImX/2GB7YSq6/L7A34qanH8haEm9bZ\nPRULNFLhN0/31lU7huwrrZrz5/BF4KLv0M0gmmO+diz7DAVVD/+3KzTwgqXa\ncjMBV3M3o+bFoT0e2HABSKxz1k2gtWTzOQMzVCuhJ+qHNVKh161AuekU7SLC\nT0ADYavUgvS9h4Ohap2qpFX4TIo89UYbPfWGKcSIw02qyGRo6bDUagIIsb3L\n6SlZO+FRhTIVZMSU6MGKg/5lM3GkXgcEkH7SQhgQg5mXBFdZIGTOJN5H8PuI\nbuO9qo9Ha/doWsJvf+/FE2pjdb6Uu3Ib46maDxOTwfc2ogN93cm3Ry8++Lrc\ndhzxndOmF7NlE/APGJpRwnOtcLefPiEmXeH7A/6xJaeM3dXKbzNJoRh6/mHR\ngT2TvYQ1Y0y3nyTXZIKHqpqOaP8WPGfwaX6X6iUhOM5q+PRtnne/e2lA+lE1\nV4tw\r\n=0hb7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1324f1aa4a528baf18b28ef1d45c44ac363e6ed9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.12","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.1","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-1324f1-kqkwufib_1625144187742_0.8503137355886563","host":"s3://npm-registry-packages"}},"2.0.0-feature-fa239b-kr62xcot":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-fa239b-kr62xcot","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-fa239b-kr62xcot","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3f670fcb0c22324e6e8cc255ac45086da77c3163","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-fa239b-kr62xcot.tgz","fileCount":965,"integrity":"sha512-u2Absl8N7FF93hoqVFXWOJFmpqPyMnlfAQFFXUmk+ASENPvLEm7CPMNmgIizOJTBUL8DcpadAIlD6hBbrrkNPg==","signatures":[{"sig":"MEYCIQCRhtQbc8CfwaN6Nv6HvwfyFZudi6fyHQkCoCreBkIRxgIhAMj5qubs9kntrXxCtaY6YBBzuj3AzZ1nBa0whzEet8hr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8UOQCRA9TVsSAnZWagAAz9YP/A4F1ZVOATw4XCcH9R70\n0DhfjWGL0BNMnnRAYOUl/+tB0nu/J57JQcZmUTIiSSupCCePupW180uTyxIW\nt+zFon2PysnHshg2Wns89yzxUxxspGEeeEPLuOUEboLUN8g9zp6YmFaMIpUH\nPFcs2Em22/1JJTdwMGnHK4ewwKDETw8il3aDg2IaIllXs0xDaEB0ltU426tp\nQ/VLlmQeCBFax8n3LG2zMplubJnU9wI4b1Si4ALLvd3IOA/U1orHyESZaOg7\nay3EUMSQ2/yfcx6mkglw3hUcZAuFHWx3AcppMMdYJcmD4Obh0MMNEVs9vktW\nF4yJO2IUv4o6AEhqz467A7XClM1RV70dqwtTblMLUJ0YOj4uF1YArMP55M2r\nVnmsgA3khq+pkKe4Ga4PLABP1Oi0Lw/iWuZmz/KELmGmwr78JYq6vNkjy1OA\nEBf+MR7tC9Quxp34awyzRrG/i0Nxpeiq/d4dVjXheQerpwygk+aD2v7wziiE\nxuQWbMismpZYOg+iWPjxpg3nFrNPMnyPAZPzpjJLA4Zj+3prwFFvwZqRAvXI\nAddsX8DeT4rhFiyZkEGwRbqrI09hhx3Z7vD5do/jiscrEy7Fops0X3aAHNbL\nTulKiNKPa3Qp+R/wyKHSgVGRbeSe0l2xqVKJLAuJNQ4muaLhGfaj3sblEds8\nfhv8\r\n=RYkS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fa239b14485a4b6ea65be8bd5e2a2b69c1e5add5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-fa239b-kr62xcot_1626424208519_0.3687339618983807","host":"s3://npm-registry-packages"}},"2.0.0-feature-704795-kr635a3b":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-704795-kr635a3b","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-704795-kr635a3b","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"62a5d85eb86358224988b4f7572936bd00f577d3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-704795-kr635a3b.tgz","fileCount":965,"integrity":"sha512-ldaipB1d79vmfRlOXZ3PZJsJnxH5K6m4VoW0hqSeLck9OMwLtLc4L8TkApjJZ6Ms2N9OkhO5/pzi84LUhbzr9A==","signatures":[{"sig":"MEUCIDNLa912NE0e6juENU1xgn+DfVDy0n/C9CKSWBIZ5hHJAiEAgjbJPeOOajsUeK4jmHXpQba4EnXsEjvIa4+dWUxh5Rg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8UUHCRA9TVsSAnZWagAA7AkP/jAZlQm3xM3iJVZ5lXhz\n61b5fg8gqnNPCP3hh7uoMr+l+KKgA6nZGRT5iR6nLv+8CqObc2+V+AuDUc+N\ntFSSrHsY5SCIS/3Dv2FW7QzDdl3DSXg/MKGBbTkJ6pAshxjxj8RJBNXyDfY+\nVOo2NXpA92we7oeXflRNqU/hZeU8D+zhs57r+3L8EjlJRswp9Z8tAWkPwIgl\nnACaAp9JfRC57NJ/QQLYAZIUd4BnXRV0Rknmt/HTFJiKg44zZwNZ4pNAbCSX\n3m8PHtfeu8NbkzZ5fd1RWXOPYZeot/1xDexfub5GpYIJSJG7X1VAT3X3zVwV\nKMKoP02G0HZWQ+++4un9wwDTQ36ei1Wk4NEal8NYQx4Omz3D/LXqQpDIJbWL\n15noXDN8D4+IraRg3lJalBSc70lwyyNxDQ8z4dQuFvgNp3JBHP2/gKq2R5Ed\n4z+y0WqkN6SsoVIFn+24ReEDqTtc2L+uXDyySwXWCTch6OkZncLDKUorF/2E\nQ7n/irSG1NfFRvEvoviaRBjCWi3hUQlzgPUanwDX7GtQA/12vs8OrAyxBpNJ\n2Hv7GDnD8VWj0m4hDe1afDvekFSniAd17jTfFOMk4EmFXkV47IsRravdYYT8\nOsc/sjwH1tvp1OhCKoxd9AKCNzTB2CHFFuIGbCHxt17cKtjE6KrGTZiz24MF\npMlv\r\n=/LCs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7047958208c7866293d9a81b38893af4f324815e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-704795-kr635a3b_1626424583358_0.9137662554581298","host":"s3://npm-registry-packages"}},"2.0.0-feature-f70aab-kr63qz2r":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-f70aab-kr63qz2r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-f70aab-kr63qz2r","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1785d187069471bee5604ff1e9f67e4ca1b936d4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-f70aab-kr63qz2r.tgz","fileCount":965,"integrity":"sha512-8XP2mw51YPa7vFYZ6L7Is/MQedDwEuknJgu1TBtP0qTGQCixqnWcpfeB/w1gLtxsIicRP+XE1M/aA6nL6sb0Lw==","signatures":[{"sig":"MEQCIEaLdUyshmDgUAsMozSEzJqSPvQV7YfgrhzwvuNf8FBsAiAKOOwHbK7aiCt9CFDFTNX7x+BDJjlresvNK4I3KUTJig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8Uj9CRA9TVsSAnZWagAA6vkP/jdCpXg6XinJiHq8RvS0\nRQIyr9OTQ8ASJ31bRpAX5Ql7nlfepSAalnYov4O258iArmba0+ZEGamwEioS\n0E824RsABFbNCwRu3svP7YdXvQMyvpj0Z0K3eQy/kfRXxlz/8IFYeQbEalCw\nDC92NeLFgYrrvNpaWnpwHU6DoKjCVC1XNLwqM6GJq3lnDhRa60PBCuUwnC0Z\n/vgiIuqLID657KaG7ljq0r6ogh2KnutXTsyFs8X1ciOTFo3QMT4BIskcPXUZ\nH6SWafoFy1eAsUfydZtd5zyT+6GWPHKlH3M0wVQ+YgLu4Cp2Z7oLyGhNEeUX\nyvjgg+aTW2vNzLjrPFKaIoeAKicqk3DlH2AGf1IF6Dp6sJB1h/dDJaUjJ7sp\nOyaNgWZrCXb94YDbjUT23+tQYc6GoqmwWhkxUIFLQ9Wiulj7CXtSVzXy0A9c\n2tJpGdG1G0qePoU5SoH6HIv/+xD0+lR11PaW0HXqoqmrLdpOn4PIn6MAINot\nLwiE+a+fQRSNBdJ4+yKcEHe5oEJB97uL4y3PXv0TgWer2noSYp5wseEodnL1\nxh8L9Iae05URWPPq8E5JbhCeADAiC1SaEvSRq5o68xtfEEWLUTUlUHI5HPVD\nDgk3FpZ9K+uEk/4KA6tIUiMys1B2amcmsECesq5bwHZrSo3tAhjwk82Sr2/w\nO2RN\r\n=/0mM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f70aab62aac4f584ba94f89f559c12ce9ef726c6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-f70aab-kr63qz2r_1626425596830_0.7206898228225325","host":"s3://npm-registry-packages"}},"2.0.0-feature-bb5599-kr69y6qw":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-bb5599-kr69y6qw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-bb5599-kr69y6qw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3c22de5ba93eae799af5bf1757d3dd9c53206320","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-bb5599-kr69y6qw.tgz","fileCount":965,"integrity":"sha512-A6WgB4t9nb4i+EegdmlNoE6L5+Gm/76ybDm/CDQeJ+BuUraBzC2d5ikLrcEbmhVU6I2dhecr58V+nd1tVcrCmg==","signatures":[{"sig":"MEQCIC9rT+vcoJjg6jRuUlWjTb0L517dJr9KnoSf8y2W6deiAiB8ko1cLbBNLQxfDzsGTX5OmgkBFoKXv7R+pMfOE0WO5Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8XG3CRA9TVsSAnZWagAAQL8QAJhJZbV2Kv/sqFBGxlmT\naM1h/aHGKCVQ1A4x9GkD7F5H2T3NyKSartkwGm/FASD5hMebM7S20ZLgaepl\nprwlyj87Y4Wd9kl51+P3NNcauqM8/3ryXmqdH2oZokvu+8sKEQzKXcf4JUCJ\n+14zscWXFvnUawnTRXbO277U/LfXN2ltxZTjoc4uT7Y8YZHMtsMywWS1ez7M\nRFfpez2YLnJPmNy26YIG3qI8E2ugNNCsBg9Z3G8EQGGLbrj582BmHh8BRVlJ\n/rrTIqo3AKJbcn1ZdO2gZo2PTVRCpaNSSJ7RI/eVf2x6NcyDFIujA4BOh3gN\n35xk7fCUWAYGzegRje9uiO7aTxUJ5lq1TQRgOHK7dFU9sPFXE8jhRTX46xc/\nJzi5laKV36NHvZlvcO1OBcra1+0y7TjqGWkdUjJTNQOTci0jufYF2Ul6s3PT\nALy+MKLZADr6Yo3GrE55E9nvGJOP6ARzj/CYjmWyOaIqPTHKgXK0b+nlyroV\nHrrQdH+dugx8u4iwlvkdUEBUz7ZxDrSwklDnFtK9MRZb1kSwDElOKbeMM0YD\n+yCu5vYJMQYcX6gcVd2itGBzocVHGboGdRGnOGEmLMlWdzdHqfB2ceDByER6\noic5UvmBLYRjwhjiH1orsM7WFl2n5o+3LvDUkwHYeWneF4TBfwPb2SIz12O0\ngWB7\r\n=Aspk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bb55994e036ee61e679dded419c9412ffd0f86a4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-bb5599-kr69y6qw_1626436022848_0.39489675722527173","host":"s3://npm-registry-packages"}},"2.0.0-feature-dbf8af-kr6a1o6t":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-dbf8af-kr6a1o6t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-dbf8af-kr6a1o6t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7317d68aad20485bbeec5bfa7034ea07d1e98831","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-dbf8af-kr6a1o6t.tgz","fileCount":965,"integrity":"sha512-awZd6fdYAzGXLwjK6FUh8ox7/FXuUr69fcTdM+HHillU2pPhnWLE1KqEK7xHc92lf/v9CVF+UpQ1RC4kMXpIHw==","signatures":[{"sig":"MEUCICyzlN6+xt9fSJPHrWsFHPIYKhb/WLZ7cN/DKZKGiBD8AiEA+L6BxhnCmiQKAIWQQzloHIu/GS6V9r/npCqsxaL1KUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8XI2CRA9TVsSAnZWagAAwmwP/2KoJmzizCZpv5NS0rjA\nyOFvoplky50IeMGtJe9whNvi8WS081kfyfmzy+w7wMwSS87Y20BDbpxo+sXm\nDafzHZI6DbKHFi2VARe8mgjWq184horQNp2Gjc43qCM64OfJ3e1DOlHwZeEy\n0ULUAiEaCdR0OZgkMENvxSuvI7c/0uZ3tRjkaLh9El2SUFbJ6mZbLudmIIJ/\nC+Vb+cvG+CUWeBFRMyxDMMx7s54cs4KnZqyq6K0/zPLGUqWZA9VUdCf/+CHY\ndrctbI9qXOvGY0JKecu01wJmGhuiR9OkYjNDD0V9qed5/FiM9J0IXbNniMN8\n5bFSjidMpnafUH6Xw0Xxleja/eobhj9uRXLapyNFee+aRqqLCL8+dXIwnn2N\nFB0iO6MRWowFcSSsrUfuCxb4OcgAQgkBDH1NJqmOJfvZKW2c1YVWJy0qf9qb\neu2+f3jefByB+BXMrwfPkeu39Enz/YDohEWRdvcDL0u54jAUx+EsZzsoSvdx\nnEa+ALKo+n1u5hHJmYh8thwpk7DqF4pdADzpq3Uvg29n6NQEPSNJetsG+RKI\nUJITEouLVQRCr4zphR7yeDbtspqEIKk2sIgceUzM6OeF8GvZvZy5y1AhnDhM\nobbM35vg5tQahylfrXzEXhKrUItmfDpVwlvLMurzWurQm97alfqZhx4P2DdJ\nECck\r\n=H6N1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dbf8af4d5bf7b4fc0985bb2fe69b5549a1695559","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-dbf8af-kr6a1o6t_1626436150782_0.27534620472252613","host":"s3://npm-registry-packages"}},"2.0.0-feature-bc0c14-krbqjhru":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-bc0c14-krbqjhru","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-bc0c14-krbqjhru","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a23fe33cdf6a6d08154f0fcc70bf9e3d09deced1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-bc0c14-krbqjhru.tgz","fileCount":965,"integrity":"sha512-w9/2YRphNmhGZIMTYiwzrrl9yrLvRJuNtiRZKc0IMnCrKASJxZgbGltoUIwt4KW/A3YFXGRhmqXK2FAqqwsFmw==","signatures":[{"sig":"MEQCIAFF0Zd1kDa9YpvFJQA32gejHEpQ7MUaraBkv2E+C013AiA+lSjfufklABIi2yteERpb+JVtgEw589rvlwxMkpz9aQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9nt9CRA9TVsSAnZWagAA1r4P/j9nCLfb/V+dVEk7XIwq\nO6kh3JSvcqwXa8kC4QyeGKzB7JkL04NhIfOGEYIE+g2iUTZ3v7phhJO6X0/2\neqkutYF//Cf7YUHTjbOw+njzqg7LtrO2yxg+D4PhH4WD16V9O1A2T8BlDUXA\nHSIydYoqN8gXct7ki0yUcfdT6YKdYfAFK6N+56iOlEIgkCbKIUn+yYsJKlBL\ntNKWJnMr5CjaRojMfaerpdRGaFNsK5Cw1lyuxM5F9d97zRxMucvUD9jvT5Ea\n+y6ZVbHVmcsRqXAvtACWBQzzx+pKwotD1IA51ZJdyzWYxLw+wdQbgOaL4Ner\n1mEmFE+56Ew6/U3vGx7b5t92M9lNdGTGbU+5cBn6OmQ/53GsF4Rb0LAWJ5X8\nBNaDV3Sum/rmiMCWOBTadsBmpKgREJku0VlpXk1qH0HhxGUSkMI5HUHkJprv\nonWKvBMclL4M8LKlnHUhQgF0NKmhjzJle3iCO/JiJd9PblGnGbliG4x3wled\nITF57sezkEYwT0LffQOCC+6qIbzxKnGY9OD2yWOYNtwosZ4JftTEEazdB9Vr\n0XB8KPX0Dkg5eEcjV3hbSwNj7PgCpf7COw5fSDYPWBoZaaXA2PRlsf0IAnNn\nIwP9yJlIlaH6vFC2z9wKmZYr41zVpylYG77wLrAwWF/HBNWzpXc5USzTD+DZ\nu+TJ\r\n=XoC0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc0c141b9ab326141cdeb62095ce4d2298546a75","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-bc0c14-krbqjhru_1626766205613_0.8662837188480959","host":"s3://npm-registry-packages"}},"2.0.0-feature-13e940-krbwc8jq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-13e940-krbwc8jq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-13e940-krbwc8jq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f9057b68357cd68859d44b30662ffecce4cd0a5e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-13e940-krbwc8jq.tgz","fileCount":960,"integrity":"sha512-hgRJORkR+cH481+ZzoWSswBkr8LyB10GN9ajq1AGB81mxj3XHbRIZIRzcNj/nxQfn548yYciz9b7rd+FwPUkZQ==","signatures":[{"sig":"MEYCIQCl2WUHu+Bleg9VZPCZd+VYacUa85DpTDwUDRsedfz+xgIhAI45HWObbqvwdwZwJT8qypyhE/jb+FXLJWDl0G1J5lCL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9qF3CRA9TVsSAnZWagAAZyAQAI76aG8fWrNz8I+9JhY5\n+V3MGQyvD3PAdNPj5vaiL8rOYIGxAhWmRXWPNBMr+ELz8B2UjgYe2AvkthkY\nrRFirmgXpzsKMcfr54ibPIM+5qrPhLZljQBUK2xDE4C/GywwFIuA0uDy9I+4\nR1F8K4wuWVboiUvXl+5IUknPAWfLuTfxIFqV1Fm3YUyCGMSuJgZ4rRJPMm+I\nlnmzuqo2Pge3WUVxTFTS4X2gK4oQf6ajPp9yrkpsMUa2goSTV/lNy6PERJbW\nQriLBu6VGc9dlXzComYju/AjUi2AQgcFCHaRFuLlbkmyX5VxK0wX7InBLPau\nZqYEsIwRDJM+4uYjVcUg+AY/whjdI1lON0p1ni8Shr2A06ryBZ72RaHRLv1a\nSVIVLVnxmPdMvaNOYNf3d6apRqf/8kNtoFZ6Pzzdk29UnzMSV3SCwsbmTGUB\nKWmXqrew/zd5xaTUxAWysWgPj3l6hb4dhcthFyYcsG9ArU7bTvMRB65KlqTi\n+uQEKPVgvauQOXI8erZfNQRgcnJbB3Ageb3dJTG0yKFnX++dZVmVYPj2JDwp\nwun0LnB1ZIDSnkDCHel5dPtJ2J4vXERoCDTQodq4CJKUXkIA6FGqy3J6hlaw\nDTUxST+OA+m83ELtJaIMjjFkK7NCLsnduTJLnC8fazUhGSJ4OGJYeEiorBsr\nRwTe\r\n=Rovs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"13e94039e17c19f5965d464e245c08adc4ae2a93","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-13e940-krbwc8jq_1626775926889_0.6953583807369872","host":"s3://npm-registry-packages"}},"2.0.0-feature-1930e8-krdfdxi0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-1930e8-krdfdxi0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-1930e8-krdfdxi0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"83b72225eb323ecf921b7ce34b2f5daa42d07904","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-1930e8-krdfdxi0.tgz","fileCount":965,"integrity":"sha512-+ZaEMYer6lPRnH1ge9vU1ifd8HckHe1wa489+tYSH8rlcLYKjIZdT+WPPg2rSyY3LbzjZkQgHvuexJ0aaTWyBA==","signatures":[{"sig":"MEYCIQDtsvDqXHNN8OL2Bd4G8TRTklK206tQgg9Cjsn1IwI4tAIhAM5fNnuDcTWqkG9ZwsaCnbY67QJ8yE4aeOcPuYqnJy4y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1618333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+Aq9CRA9TVsSAnZWagAATpEP/RDXAADwyQnCVzPC2ona\nZ9KVhuN/uw6juBltyIGAgOVaLzj66cx6ETZiKGbIejrOCojq2IurOAMvXNLd\nvKNJ1Agpp1L2KZ6YaCahWNhhjd5cBA0WJoByLNTAabZCtHtwLl5hfnYT2J7R\nfzASbBa1AUEkj5tPTDvD+aE6RpTRsTxPgx4Vm5LXb0XzZTNzO4C3QD6sFDbX\nqfMoTp3Cm+haVeDNvpD5BLhvoMQifwWxEG1RgpVQ2d+13BL55oie6X0T+r3e\nwIMJS80Y+Ct61B1w2DXWYG+3gC6LYHVYVI5GtmrPhw+/L3N1hdMCdMKTbXsK\nx3d4AMk5qfoQVDC3ETQQn0v00QW/+ySG2g6m8T6sraSGaFQQ0wf/gH10N2OJ\n6UtF+UpNMx0DrHhVKwCVgbg5mF7250kDta52CYExEkzguX23531NtsdrnuwY\nTTgpHE1uJx/3C7uuM7+EYyJvyAbKJR4lI2YfkSiCwfecGZlWEAAcyd19TxKW\n02XxdlD+w+OaS3DoWEM/dD6UfXxwoHtLpQgqko2Vt46PTC3B7EoMELip5+NZ\nj/I5Cojw1ij9u0FpBZ4Sfub9+1afPrmY6bny1HAu3tJuo4ZJPsHbxvPKLLr1\nPObemQaRVxSdP5FQwr5WE8oDGZyXATw9Yp5x613njZ/F3dAGnMLhKylGNpNJ\nDzEn\r\n=4EdB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1930e85a6db6cab7cd87da806b5292c4d9f70c37","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-1930e8-krdfdxi0_1626868413569_0.7397095889988381","host":"s3://npm-registry-packages"}},"2.0.0-feature-ac6f0c-krdfnp7j":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-ac6f0c-krdfnp7j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-ac6f0c-krdfnp7j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f62892b516024a4e101bbc1e41d22828451d3bcf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-ac6f0c-krdfnp7j.tgz","fileCount":965,"integrity":"sha512-dik3uD6RMzlFAAyw4JB2szV6a7PRjJ0V/vYnu0TDopPJhhvCG8a/JvIlSF08Dw1jkpFE9WuEczvfqbmJPVovKw==","signatures":[{"sig":"MEUCIQCuapXwcSL/AL/7nruFSd5c+jNfPRo47VtDUoHS4u8EwwIgeBzwDQ0/qwMvADHeAZAq/kkY+39IBwjKwTUNN+/CNKg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1618881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+AxsCRA9TVsSAnZWagAAzEgP/RQBlPnuwJ0odYYxA36B\nKP1Yse3qV5vBvk2jdx9jZu7P4na6a8EdiGeC32rLep9uT5092gGYCX7B/Ptq\npGHRfMOdleX1Z83TV6np9LPiFmPEnSbk28OfN1t7A7V2B4hwnJQPg6Ltoe1J\nfypIvkKM4EA19K3TKrbuLK5keXh6mVvTUZySLyP25FiuIaZf/lPtaE/wGTj/\n+FmidMqfMiVwIWaGYRx/qPD6/lcRCNYpANgVUlX0yipSuquMv4JpM9yFKz4L\nX2mXio06Kx7frVOOSFhrgZG/Cb8yJ8ZDHbWr6o/u62BcwJy766J5MxEzbzv0\nJDSOzNrOUqoHX+nU8Mvt+hR6+LUUOZr2wmCh0v+4zzUS96fYlN/hjMpRn3XH\nD/2Ex3H4Krj1gcrxSIkeL0g4dyBOFHe7Ft0hGiBdM+FRuhV5rX9D0vDpwZ4R\nWFRUQtUCiBjbE72nT1CXwXVtt8trJnSaQortvSShbhMe4KlZZYUbtYEIEl5a\n7ocWKk5AuljWhrOIuF8mCYNgMmWWoqfU4FlUuelsaEdrj9d4I/14tFR4ptmY\njRLXbeehQm9MVsovG+luTA7Asc2h2MBHROI7cNYKsn6PsS/9KCryFeWxu0Pr\nj5HTas7b8VMjVZiC7E7XZ5QJ/ZWYqGrDaaKBMopSggbErxaouSDWbrN9kMVd\nn8b3\r\n=epjf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ac6f0c953248c60d2c8746c07f7bea48d578234a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-ac6f0c-krdfnp7j_1626868844220_0.22965014334791412","host":"s3://npm-registry-packages"}},"2.0.0-feature-e1fcd8-krdhtd8f":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-e1fcd8-krdhtd8f","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-e1fcd8-krdhtd8f","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fda639cae37a7deb42a5f74b5186757a049fca36","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-e1fcd8-krdhtd8f.tgz","fileCount":965,"integrity":"sha512-OP9mVB/wZuYS35v2LFNk4kWtL236FlT322yh37a+iBgmIRtVFZNPQK9SE95iXdHDNYtOQVvbZ+pqvoRKbBOw0A==","signatures":[{"sig":"MEUCIBV6uOQau9FranwSsGcZYlLfos1qzeB79pg2cwvoPW7RAiEA6nGX2ux42gyulda8x3foFTenH4hSNCRI/u/7ZxEezOo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1618939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+BqZCRA9TVsSAnZWagAA9/UP/3FstA0RrMlb/+5YPD2B\nyIx7XCBFVNwNjW1HPX2MOXtU6guvQ0oT4kvofktDKbJvS72MWdQdNgKGHxMO\n2/Hr+6qijGCO5ZaRSpvuUG/RGe0sYmcwXtE0uGoz8TxZdpCIw0k9LmLgXAVn\nRiogYoSkVb3bWOGlGO8T+EQIrr5nA+mUND+3PE+Ob1z2vhFDTdKLdRiuxC6o\nqzl3xQbVXZlD6td3k3mJgwqSl1pHtKyv3PdsATqhbK0/fvVOEjm3jL+QKNgQ\nO+Y0N4waPxGR9px6xDJB8IZpDYt7GjAtRFDZ7s38tbhv4EqP7yFgKC9XZYFF\nltLqgEpwWht5EMuXG0sIiNg6QZPDjRFZ9TPgq2cP8IxaHOKa0kbITTYp0xnF\nyT7jWOVbXa8PXgg0wBwF4vZ0Tmize2uRio+qaDJCyf1VDKYdjcablfIEKGgB\nm+9JZZOn86KCVvQjqOMJOsezLw7Jpgk3f33u6yAEjRj+p+7FqeJbt1ROAyQH\ncNm783vPBwdjJ0eAFHYmZ3wQ5JWxKdVJFTlp0jwAt1KNhEJJKlK2UHZ3NLIr\nxpKyfOdwlDpBh5PpHHD7LysmVWy79ARtFdgk21cNULcpHeow/f64i7GbixVX\n3IkUAmFlnfGl/v93OTDPyEINKacF1erCgcEpmc1QyAr6l8ndeZifY4ZVcmF8\nyE17\r\n=b0YA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e1fcd898791c105af1d535f2ed8f93ec83aad1a4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-e1fcd8-krdhtd8f_1626872473417_0.512181348405278","host":"s3://npm-registry-packages"}},"2.0.0-feature-b3e7ff-kremc3v3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-b3e7ff-kremc3v3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-b3e7ff-kremc3v3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c588a67545241674f8690c4f620e5eb38afc8e92","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-b3e7ff-kremc3v3.tgz","fileCount":965,"integrity":"sha512-GK6YxSrPjRi2Tfx3Kxim35jmYSCCp7kI3RNl2rRYeW3jd+RnRTuZx31zdHcaoqyZ2mYjyOPFuEVD6NSTuQMLCg==","signatures":[{"sig":"MEYCIQC5VqoYZ6qpLPpebxtEQGCd285YDlXAp1Ws5kJnjre2XQIhAKW/53l3irov1BZGpDjTpAi6mqvUS58wZgxb3HtV8kxw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+SR6CRA9TVsSAnZWagAA7JYQAIrPbU7CumjlypZCsU0I\neJsodgvXdK9T+sd+/55s5Y68LLSB3NUwFtUIZ+Ggu4NA/KFcyoGpfCGICWcG\nHu772UFEqDqy2iitywk65dniVdI4hUyqbDK9ILNg+51m5L/4ZrayYAA3TY4J\n9Y5Volg4lT1O+FF/+5gEgf1gsu3H9tWEwhy2CB1Vwip/spikxB5QH3PVhm0Y\nQivgqv0p1bxRfJ3R3rQEvLCR9ntcYa+0IEZblZdiqTbZzOMjvUXJPqzSGWAj\nWRPeIvLvxGlya7o3qTnToSbW0MdFoBiiSWK+PEGT9Bi7dSyzmtTG6pupR/ey\nliUd5e6ukenICfSQp0cmOqurYVh+irI/opsuC3b/+F6LeHom9SPFG/RcfwXp\nzgp5buyxrSlv0ECtwQ5jocEblq1Om4ZeGw8iauLc5teuJ9OKiZRMvkX+c9Bq\ngjZ76Z2BjMMjShx+aMtv5ZbS+IFhrrpaXVIt8JKzfojFPal1mzmr/hjNzz/S\nXEMGF4hMzvNAbyaLfBCnqPXhE+pE1uYuv6h0fLu6fnZqrQbazfvMK7mekHeT\nVmk5e5CjreEb3896KT8Kp5qEl+hYqbgFnCHn1sIja4HhSq++DGhS+59Dvqad\nmKmI52L/D2gmxXJ3k3p0a/UU233//O/fD3pE0NVj5BpRo7rSNwcM0pcWfBjP\nM9bj\r\n=G/8p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b3e7ff8694802efe5f4001da5dc5a45fdd16355f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.2.1","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.24"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-b3e7ff-kremc3v3_1626940537834_0.43751609548745174","host":"s3://npm-registry-packages"}},"2.0.0-feature-dc0fc1-krgab4ys":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-dc0fc1-krgab4ys","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-dc0fc1-krgab4ys","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cffba78733578d12a34cb6840be44b4774f760dd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-dc0fc1-krgab4ys.tgz","fileCount":960,"integrity":"sha512-hvVxsMAC6/Ut5ZFSNrOZSu3+mhUxXeU91D+XZNSSj0YJV9Kr4DsHGELdJ9H56zln0q9qW+FG/acFi/3ezFqWzw==","signatures":[{"sig":"MEYCIQCNcgdS3pWkl+OwlYXcSKiurJWTPl66uBFpTzc6PkNPxAIhAPCdHy3jxku6ui+LNIbFPpmX9feMjj1+ZCjDxxIlt6sj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+q3mCRA9TVsSAnZWagAAXTMQAImbL0b/pOWe6YglDtHK\nC3NKett+rOxViVXRYmgBSqfc64OJhoI+WOfzrPKS5BrPt26SGN7mOvuPcjRO\n+qUf9drUYn+IUPLS8/ID8j98LGhgvTajr9jR47cvUhKN1eZFt/vXf16aC9tF\nS6sLxdvMv1uoys14b41YX4z/ZgMTAH1qwmi1bd1lIRElmuQFS0J0F90imXGN\nhspaunXddpdZ4ZWWeYcLnBhcCoqmb6blzdR+4tS7yYJ79nF5mhivhmIWK9CQ\n3aRTQWOFc+EslObf+1iC/8x2C8cYd/n9re8mxzfTmZWJbaHyq6xC/UooyEqE\n7Kro6fDS0w+avRkXXRkkQ4SsBHVxzLfbdXHNzXRG1zDmVWEqGtJu4PqE+Hyl\n3h8UlR0qm8NBYz1jhPt41DKnte6mRlM2wt9OUEXuZM3an2AFyz9hz2StFyxv\n/LQKWaApJHD4Y8JYRBLxkRjd+2Vmp0a9QSZUjTLKvS8hHEZ9A0EvViy8Uu+c\nQkyTnK5Gcov3uDiY6fVjvzgMXKOua7FjsXL+gFulutRDBcZdw/MeAGjyPEIc\nI72du6gImoTZKYWryT0oXOly1uQ7RtaQ3Ws5akaWgpqcXC8XLeC4EQa3/tCr\nPgMsusDK1tirue7VmlEWZwmvxeeeM74L3WEdHu+tjOj1S6YxffKFEzXClb92\nK7UC\r\n=0Dfm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dc0fc19d3cfd3bee494f4486fb96f89f2f8072d2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-dc0fc1-krgab4ys_1627041254607_0.9857858056535898","host":"s3://npm-registry-packages"}},"2.0.0-alpha.10":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.10","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.10","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4f2d116be1b4f2632aec5e91c8e60018fb7fa9aa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.10.tgz","fileCount":960,"integrity":"sha512-Ek5K2gcS2DrADGDTAh33myigU7IMr0u5i9Oan279ZNclQPRfL+EPphXp0DfwRXqPZYQjEZPLrU96wplXAToHVw==","signatures":[{"sig":"MEUCIH8uJWPxNlEIHRbBzYRfRqq1yljXprW/xjeCFqX+T3OfAiEA1Wn7I4Z1u+l55fhFsksGdMHQ2KTkFYT5KSttVw03a/I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+q+gCRA9TVsSAnZWagAAN7QP/10QyJCMVNhsMzTx7T6e\nTot4Ynz+oK0dYZg1XD2nzqBjQzdNx3DYI9VF/ABM4vOXICAWiEIcIa9RlS/t\nZ0poqYCv+ebZFJJ/dlAtLKybpZYZrap1Ylai5mqtzeVdgXf18hVAbzEH9oqp\ndwPvgROC3JmufDiNLVivLgKzoLdTFvg1uxdxwsA83PIRQ1DcJl9DFjYDSmUZ\nsRrjAwE5eGbw1288oW3R2hfzM5Ppbubgl7Leymx+/t63CO8NMR/I7/r5fvpU\nELs8cport3VfL1AnBytf5+fLj3iswoa983krSL+hvaIU1D+jYtMD2pqTL6d0\nReDr0iNpdi9aaJugjSPOmQuW/gfVc5omY6x4nGf0/ZOlqEbmOdPSPytl3qVe\nPbhGUwTB8eba7p+SI6ocDv4KRu1eNTJWnonTFMB3qOIKXcQikFhPX60P6B8R\nTTiRpBdkiHI2wWR7xGKNRCKpFMyQVAn2dG98foSihIrVDey1scfgSU74z1YO\nHMJGX82LeRKNOxuCMnpz6C9/tmHYV+7yOFX1jWmQrYtrW1EI2DYCPpDUyNRJ\nRmfUzbKA7gPHo5V7Y82x9kzlxRQr4/tRFIdfdU97zd7e4JA/DhaEU41mVfoC\njwIMVIhAZN6OGmj9/8eB4vSQRVQaUQN1JjZTZ2sVk8nl9mQF5sksttVBdM94\nAeVZ\r\n=Lo4E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"284e968ab4dcd3d07499a32b243d05fb32201406","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.10_1627041696724_0.8072022391363642","host":"s3://npm-registry-packages"}},"2.0.0-feature-366e39-krganqi7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-366e39-krganqi7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-366e39-krganqi7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ae1a0b7d98099c4dd9c648478e20d83c3b7c9c2b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-366e39-krganqi7.tgz","fileCount":970,"integrity":"sha512-JRYFkR9MN0hyuDLRihhpm/DeA1BcM2eTHVSD99Aj4xdCIZ+17EHc2xiFg0Ulvuypc26/pwGx9ZKrXw0kvLzBlw==","signatures":[{"sig":"MEYCIQCME3qT2oa2xnoL4SDHL7TaZCyCZv/ctMuzKY+r6C48vwIhAO9KLy+QVaEvmcRntUYx6EEWV95ceZOwbRn1BQb0GaeN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1609722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+rAxCRA9TVsSAnZWagAAU4AP/1gcuYYUZ4FoCaItOHCx\nQYbS/dfAvDMpC6AMqjUDMCAkItYF9lmI9zo6gNrN8h2ou5lCH489uu46EaPw\nCt+qZcd/tODhJtYrurM8qRpMr4Pfkx2t65NLufKcxLAnfx7+m3Pm8ppAM+4R\nkdLE9WuAOyhTPSyRkDDVfEA0nrrz/0WiZsqKlChzj64ZXr19AGA75eP6O+3B\n+RPhrCBYLv81ji1EMad8T0jdCopeFqTO+59ikpeA0+PWGTI7c7HzhRJto0Fq\njoNuE9HZ+QkuroMDPvRHKQZzJokCe5XyaBpNJWT+UFTChqg42rxHH9PDnZ5v\nTt89DH2JtpG9/UDfbW+G4l9oPuGfyP4aHAFfzG2QQFlLkyM+yUMDd2e/vtby\nGiSXgLtT0992MT0Tw0JtIsFUP+BYnb4KPkhQqhxa7O5E5p7PyuRVGNB7FoJw\nGGztwaSajD3JGkWW0tXlxLhJvkjOIeDso1b2UVWUWzlFM9ypXG5nrnUazz4N\nHEEujY1FNf+gKw9VxHstUyE5mjO/ACqpeXrjXFyBMRIOLz9drnuk4e5nDLy/\n27NH8NScBJcM5F4laRRYRAIHwqjrG//KINhBpPdPNg33s0EarzqhM6GSGf7O\nAd5FCJ+c/6Ye9x1U2qt3UhdsfrAo/1kDZaXC8xphITH8/Acve3d6LQxaDMZw\n75jo\r\n=ma4N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"366e39a7d577456478122e51a0b48f3b8af37cae","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-366e39-krganqi7_1627041841293_0.1389307888304352","host":"s3://npm-registry-packages"}},"2.0.0-feature-862010-krkoya1e":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-862010-krkoya1e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-862010-krkoya1e","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aaaea5c2950bbdddd24f05f8c28ec2c01bb60ebc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-862010-krkoya1e.tgz","fileCount":960,"integrity":"sha512-UHdVFP9tSQS6T/E4jSJhT6g78gmnh4sHqia/KbM3RUiZuosePhUpyNrkB8BWE0OR/oEuEqlMdQqEyiRUrA9Vww==","signatures":[{"sig":"MEUCIQDTroLPW/u5rsbpuKbglVVRDZqaz1NkEc+Dd0aUmg3wpwIgNAJqzL6QLoX74S6UfGkpgVLBpKa8pZJB8tnrD7SJGYc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1604666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/r7UCRA9TVsSAnZWagAAdJoP/2Nk1uxM0vGhBZ7zKwoV\nZQzZzehAzZFig2xwtaH0EvzTGHTaQLnKPBxhWdl57xZKRFVPGc+GW/BLklKE\nbFld1Q5rFMPx+FOiVVM1uXcqOILTWXt+MruZzLo8ptLts/WSMG5YvbQZeDab\nrhKMCijyFJOnRMeavQFm7SXHcv6qAV/PBI1w6EUT4s1FLWcJEMvAyEEsoTtp\n5SXYBgZPohCQ9teAEguIpGiwn/FhVGMu6Mmp8yzwKCsPAcTfhTwpF37QgBdK\nqILBUgm51nWMo+Idmt1tFhyQlynmaALMWXvZLwpMdskM7saZ8Fgddrqgb1Tw\nqyKNcecWS2xaUT01tvJqKNiFCjc4vIawzwTBQB4f+6KRgcG4qI54oFkIkCtS\nmasJvtQdPSR7U49/ChXnC3iY3pwKrv1ABCVbyFkYRZPYivqSMteX7sh4zuYM\n9ewiEnkvw9YiF2FkIXVBjkEJ0nxsofoYqxvuWTtrHhzGAtgZzpL4cgqY9dqz\n1HCe4PfwBPD8gu8kO/Rx50dkXjyyuARl6QgQipA+gGSw9ELJ8deJD/My9DUU\nIMjzGhUHnCu8x02bhysILutv0BUs98otrqdtKsqsKMI6HMCzTISEDfME+uXm\nQ9Oxa4GWdKilxbiyplqVvM9+RrNbAsVYBb6tn/P2ZIiO1tV+bxTExxiazlLi\nw0DF\r\n=b+zn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"862010304188dd9e6cdd730007e57be60de8c576","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-862010-krkoya1e_1627307732693_0.7172078856420476","host":"s3://npm-registry-packages"}},"2.0.0-feature-808263-krkq5vzi":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-808263-krkq5vzi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-808263-krkq5vzi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2ba7a3e4f925d374f18c24c6261cb8681fcba61d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-808263-krkq5vzi.tgz","fileCount":965,"integrity":"sha512-XU2ABFdDrCHr407qz13W8XAmUBfbsN6bTvwiSOWZ3sKsfqcJjFOK6CnmeruvuSTpKcrBYIjJtcm94DQl72DQ6Q==","signatures":[{"sig":"MEQCIEdzvBriJrbeXnR3A39aNt4T0y9bYAH7hoqP1LV+N37RAiBTVZr0PEYS2XJcsM8HKmjn32EOGSPSzzY7HSAI9z4YLA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/sbMCRA9TVsSAnZWagAAA7QP/3m8SktlHeE7hVF8+H5L\nBneW/71mAPh54Jub5hvovLe+8tZtxuCtMF5M9aSyAP6TX+/dvckUwyqz7snY\nl4IqwpcsIbpucKWOnglLEIuTkINTMWSRN1QEA5+7cB/N1N6fGp4LMUJbh8hx\niBBaz2wS8GRU9lk8LJbHf0tghjmszHxWWF2byEt+1vr9SVbi4axyI73AIeBh\nkG3As5sY77vDQulvNV16ZvnlTjMzAqLJnA9EW9rddiftP78ArzrNsER1Wl+Z\nfkwuJEvR1d7WZSPbQzJuXZof1lBleny41os/ZxQwZUav6ZCT2y71re9QWSpU\nLwXzmMjGrNdQ5GtRpG0qoM+nOw/UhlhdYzy+XukBz0YUTjdVWtSfBRb6mfu7\nQBq7DoXmBXu1kaumP5r/lsL47mUZdl68mv4JdjwvEx6jA51Ec08uK+croj46\nytbK7cXw9qGSjtMCHRG5sjIkshQU1UDE2Cvv3gptf/cwegOfbvPRXRtIsLK8\ntPmP5BYWlN2kVKDkYDvFqBFdwPYQWZH6mt0FEk0n50+od1hBCQvnU4E2nc+R\nQXRUWOZBllB5Dt/B7uG0AahLzhkOYHA0EtflycwXEO1NCS5Ajg4xL7wrpBUc\nmJOCGzRoT2uXMo8Wowp4n4Xbd104n/r8VK62BmzjnDTtG9FRBCcTo4PEhTM0\nUuDv\r\n=m9Hs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8082636b249b008c4442bb8e3018ee2cdd48926e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-808263-krkq5vzi_1627309771829_0.6880454795443038","host":"s3://npm-registry-packages"}},"2.0.0-alpha.11":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.11","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.11","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e2e4f275bdc531bad4c0fe630a82175a9780fec6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.11.tgz","fileCount":965,"integrity":"sha512-zs0eWFA9GoyAHOY55EDi/4Fhz/QGi7Nr9cT2BBjRHeGPzfof3WJLs7BDZ+po/SIfCm2IfsG7Md2656Qs42CXcg==","signatures":[{"sig":"MEUCIAsTJvMvkuGxAxI10XQSBoLySRO4k7VN6TKEhaTZyI+TAiEAvqEq9SvTEzuw5to3pCY1okP37+WbQT1tnrkeIPb+t3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/6iiCRA9TVsSAnZWagAAlEQP+gO6wkYQaDYjgQ9MfQ5j\nu8wi8pb842OnWPqaQz/Ap2PWFgKDwUoxzrtRgtP3cju2JWxmULdtdWNyw7ge\n5OzVEb8mBs9Ps2Jn+uHCMR3UvmXJ2YimNIisF6TnitGhc30zf16r4ZEmRPvv\nRLQkaPNrCtRpek/OuXQDPLKQmdWGs1surIMBLHKLGu13gYOpx67ip1oiLelM\nTT/EkPlK9iLSf6HQZX7zJc6uJRCA7siTqDUF31qe/HFU8XYLReElqYX/72jQ\ndT4AUKxNnZPQOQYkMlccC4iBevhm8N0I2KZxhusAU8TDkE55N/gviOFPhf+G\n9i75PVvTTCqgh/J1LwXUZso0U+p1E6pSh5dQ5LUOcJ3ttDegsrfIK75hdhIH\np/QYp853d3Mkr4ajowvYFGFrap3CsX/60t+CRI56stdMytEbp55i5NC8QRgz\nv6obbYx8OeHX4ygl/hBWJHcBJbjefadjENI0mkxw61eicyDFuX6L8xBbTpwt\nzzzFv3Es/QzVPdWHLxFG9MfXZEXuE91iLg8a31SOVfujh5AmbC8gqS8D0m/p\n7qB8QwQPqvAbruOIXDnSX29qJNBWvojQFJJ0vWeAi4+h+w5cyDqhLbUX1JzV\nULDZpLijDlqM1sAXCzq2y36ZN4MtCDphA0xxcXs6j7LDJD4/qbFgooqCxRYR\nkQp/\r\n=1HNv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e86d3d7fc260b20c10bcd998059918cf377df5d5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.11_1627367586370_0.2791950044381737","host":"s3://npm-registry-packages"}},"2.0.0-feature-bee316-krlsi8pm":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-bee316-krlsi8pm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-bee316-krlsi8pm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a767883e2ee713ec5acc048272c8bbc06b105f11","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-bee316-krlsi8pm.tgz","fileCount":975,"integrity":"sha512-wPWfVHy5fLBGlY5XUdXPdtxCaNa+yrEb6Ewy1nUB7hQN93suwLTDffmXbgs+GL6T3TjPmOf/NnPmfesTKOdTWw==","signatures":[{"sig":"MEUCIEQy134Bk7KsJXCHL5jefdBdtJNiEOlZtkaKQyuOMbY9AiEAl93xZY4J6cpsK/2KXejgF19FiNNEKRPxSDzeI4O0oHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/8JTCRA9TVsSAnZWagAA/xYP/R2jFFrbcaE+2fUBGTqs\nu58YA9DlSF9Dhe31X2Ql9b8Ifr259bT7+GnPi+Ou99QtIRDJxP7V4NgzmT1v\nuUsXPvTgMHEZrfwJe3RAUPpSHNHVHKUM/LNZ+zJ8RvNghCtADAZu8D0cXhrL\nOoNZgwwiNc8ckeLdUKxfz/maXuaO11cVbY/XK3WnsN21U1BL/CH5e2cbwwqN\nKVRSBKgsemzyjUt6hFWct7W2th3y4tjpdzqYieiuXDM31qC4veSe91hxXNao\nhvt6WluErU2hO02Oi/Co+T3XBaSHcXNyRP4SQIAwJCs2ITO2PgvzFTiMPm5u\nu09wDQW7lRHsY7rVEjVhxAnsF3+cDZXoIlqp7xBnvnKj4WXxsutd5zn+Rb4K\n8GOHDfiYmZwcxcRJrM5YLtOGziVTaSmXNCArqJHmbFIpkmq0cmF0UkKM1c1I\nTQOUXdK4D2EPBDX4f/8XyYxYHarL7S5pIdNVtEJNpWs1ZboclkXNbd053/0N\nrwodlWJQeS5zitx005ecMoJUPRlSjr2df2USAeyh6HgDRKtQNlPp4llCMGef\ntKoMZZcADClwJraqH3I0+xNH6QbTcaBSfsWjeGDnNpTF3ZbGjvXvIO3QOoFX\n544X+6n7iAZLsLsw5k68/cC+SlWstfR7pfR4QqQj3QqHTs4s6781N1Es4SXh\nbGbv\r\n=7B4S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bee316dada370f72e249986c185fb215a1f2c5e2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-bee316-krlsi8pm_1627374163409_0.2633430576221827","host":"s3://npm-registry-packages"}},"2.0.0-feature-4236fe-krlz8e0w":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-4236fe-krlz8e0w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-4236fe-krlz8e0w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d2f964907089e4263ff6a467e9a39d3484505c99","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-4236fe-krlz8e0w.tgz","fileCount":965,"integrity":"sha512-ydYRW4KJvcAafhFh4VQIq0GozfoG2hkVNOrI9Yf3WWjytxXSdxnmVaR9TJh8eFCuDiTE2GIN1qNFP7VHpDhGdQ==","signatures":[{"sig":"MEUCIGNI4jxA+JmErDCPXndAnDwf5HGgJIgEgMKZkltlcRPsAiEAtxsUS8CXBwfzldRoX87NQYPEre65c4FTDcP4PgCuI5o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/+6ACRA9TVsSAnZWagAA3PkP/1mulQnvt/lLD/cbPR3l\nmnzAhrafS72ZwxoX/UWlWPPAVjFEkchh25rDuhqigqHkBj4wx6lTgtwwaanS\nAy7PciFzCl/CYEeM7h04RCvIIbCnWU9HlrGAXiJbs9R+qGBsxD70UQaaRaK5\n4F/Xqcnu/7XccYvPYdXKCIF35LvZ0uctZoTLKZnhRruHs+3gk/3BN7FfrStS\n9i+wel5h4roomQDPy6wqHpHrdqN1mwJa4uuiit6HmlCR8Dho6BP++3nhEcwb\naqqh/7uk3ihmthM97OUzofMEjXaraFjY1cVfGTZPtOmQ9U9tkb4NPkFwpo6v\neNNcXmblz0sYNQ/PBzC366M7sKazUi3YAi1WE5Qe6yJUdsmjY0MUdHfVSzz0\nx8ejbmMu4BNitvPNmgizt4wMsAp1aY9y0Ep/UgmEpPfB8RbzhFrJ6b4IYjaa\nYive849aa+z3JimANPpIvNmx2E4E4lsBJvA3ClKpUYsErnlu1kSt7NV6lmFu\na9GDeLQyssnT5hQcwsLEwN0wS6MhHvtepxRnJNd4qgzILUZyMM6jPM2qKOfz\nIOug9idwGiMWnqWespfB7ooN5+GBXOuO816fh6POjsq3TAw893pIWjCrSXO8\n2Gvs7Cxs/n2zsGxVMf5MypuDdNJA6xdcLEy+iIXEDvcozUUnvVVWEke4hbFP\nkd3e\r\n=Fs8v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4236fe19a23cfc5c7a50b12b4a8673c08d3daf98","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-4236fe-krlz8e0w_1627385472567_0.20225362267599278","host":"s3://npm-registry-packages"}},"2.0.0-feature-acb72b-krm3icca":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-acb72b-krm3icca","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-acb72b-krm3icca","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"97c259ebcfdc1a17b6f75d909d2f80817ecea52f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-acb72b-krm3icca.tgz","fileCount":965,"integrity":"sha512-7z5rALGc33D+wiqbOwzJBYvrPFE17VHaql/AHdCla+BeAh07jCAKiQSEsvRrBtoAibSZ6u1P4+DhsLGXYG/07w==","signatures":[{"sig":"MEYCIQCvBwxB+Sl629O9eWiB+k8Pp0vUJqdpkH67rOJgsgaMzgIhAOsGEX8wDO4xHVled1peKG8yOQxLnlN/JrU7GqvCSMoH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAApzCRA9TVsSAnZWagAAGB4P/j0EZqEeeB7KeizF3Q/5\n8t8n34zF2NcsCGHPnFQuAXqGJd+WLBdTJjwLOUOvdkf05LCYsMLN3D0gm64+\nIjVTzyLVhi2Z4HHfg210idYPDT45p6iv4E+koN6wir50aajWpPT8tdscUzgc\n0qHmIe3s6mTqzNGGV83SNyFowTErty/oTaYu0Lm/20NPk0RddbFC1XqQS/1/\nvByn90u0hG7OJ/t+QPp5fuy+bMmtiIMHmCSlvLKcvc7/HeCYIitCvENTKHBY\nnFIIPZeS80VsR4/7RkSyCUdm9Vh1Ktgwn4+WUwM5ueALyxq7ue0ZiumPR1Dr\nqgQJs0cuH7hNC86Bu485tHErHEg4zo5rCBNLfJISJWt6mhHTruNj1Xrihvno\nFfXQeS+CBpUaNWGB+abgrBbAWdm0lcEXRo6rFE5kWTUIYzTAogHsuUIHCr2m\nwxk50FWvpxFcF5muCLYn4UuBvPqm5lZm7VrU0F3acvxOeU/sxK9882ftROjL\nyiWRAkwySp9+wJefn/ixY/5kYl07gwVnzOgU7oJ6Sh6i3UzIssuq6d1P4kLI\ng2+1igJ1ipMk9Hd5fLpNEf1IraMbF1odWJCxFKukIZ61rw4xI1TrSfNvgfkb\n72NFgs/NVQLaIIfbYenkAp0sHHSFydaE+1HS5aCXMqsve4M2sSLD9Xj2+jD+\nqhj7\r\n=lngV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"acb72be0e55c5a8652f6c3b720973e6fb9870734","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-acb72b-krm3icca_1627392627496_0.6255393373656586","host":"s3://npm-registry-packages"}},"2.0.0-feature-d9eccf-krm5y6lw":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-d9eccf-krm5y6lw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-d9eccf-krm5y6lw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0dbd82e0e6efe2bab8edb6d2057ec22c65650617","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-d9eccf-krm5y6lw.tgz","fileCount":965,"integrity":"sha512-MKCV+w0W9gUHzjJLvMZbh770lgQZbIIK6Qr7CFoB9m7lkODxYTVUwcTYSFHMrwvSJj1KSaP9vs9ydGglZzsNOQ==","signatures":[{"sig":"MEUCIQDcbGk9+zE/rJ+UZYSfPzOE3I8T8kWS2uGaCLzqHlvqKwIgKEeCms2WJGKU0kNtSpuSPL2Ebg1PeHrmKyd9CDoqPSY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhABp5CRA9TVsSAnZWagAAGvgP+wW5UTzDTS8mX/L6OA04\n8cVwTV5wdawJ2Hk6a6F6z7DwlLx5T3H/eiJxFrQoA3OXFUAEOqUGkWMixWH7\nUyK1F6kC4UTdFYWJgIoXNlyLje0sd/7ZE9VzoCGhQ3UM3WmfCylGmMB8tyPt\nbVwcbDVfpNqN8VZPtLGqcBRs4S2N1s6iW8QsPYsfSGxWudotQlkWFMsuSPEI\nFAWVDe7sVcVLFhRS1ATcOlXXU5xze50e4/JFQlWJ7nOzgPvu5idOLlRsMZZm\nGGT8Bmf7SfbmYq0EFx+Ca/D1fSWtimxf5vAkx7zU55W1/QntKwS5eaKoveuK\nN7NrLh68Mpp/5JztmMAsaB601LUx8Y80gRFkMqKWOMAz6CmwuCWRNQG3rtV0\nfSaEQM/hoaZIYM2MqfemYFJNZi3c1fs/2eNZwTZv2LYFGlByw20Lr8Y5APN7\nYpz5Lo4IDXWwqnlhHp1OTBUpU2NOyF2b0+Mi/r3gWkJmLz9r99bvtMfRE/2n\nYh+GHgdIoZ9aePhnR9JafVyTyBxuNaq5VAcMoaav5cIMVcDbxnS9ZvfgtjNC\n0i42QZvu7xbvL3FpwgrBAG4AHdctWnXAAL4d7mU2d6BtcJbx24Ss1FYolieN\n99Q2OvIKSWASEk4R1zc6kPmt3AAbIXVTln/78Zf3m7immx1Wz9d+0+jpxzmR\nGTDQ\r\n=bGQJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d9eccf25a9cc55ffc4356511e33b02222d96d4a6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-d9eccf-krm5y6lw_1627396728883_0.6536568993807517","host":"s3://npm-registry-packages"}},"2.0.0-feature-719596-krm5z87x":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-719596-krm5z87x","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-719596-krm5z87x","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bf533555c48748e0e284858339dca01042676368","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-719596-krm5z87x.tgz","fileCount":965,"integrity":"sha512-jE88WWlnSa78IfqF7RtDBvw4pQAWGAzhOw/CjYLpJfc7I1vmH/6jW5QnqRYHxEo/VCblGGqHm1CwEocqoyleHA==","signatures":[{"sig":"MEUCIQDMiF/ECtINSLbsWckKs8LYtfotWzp3RUl5xjgk9AHz+wIgMeK5pnbNupR48I5+lskMCFtI0hUG1rf6SQ7F5212/rc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhABq7CRA9TVsSAnZWagAA7rgP/2ph9OuPhb49pXdmOxsi\nmx8fi8pkl/9z5EUQq4C4X3QacTeLsu67dwhjZDETFrgWJjqPlnJbGDaIms8e\n2Mua/Ecu69R4Ssz10mN4k7W8mf6hBjnA8Yzjev8zJDFQkymIVEnGiihiFe88\nH2E9lmanHt/rgYCafaUXZZq24VIc/m7v3VmLnn8W3lPVrCGbGKuYD5pW7fpg\ne/xer1xoSuzqytx3MH0ktM4ZkOifxLzaDsMFXHFJeJFA2zYFmg2gWV2PIN8X\nwq4fodvAQe9aDiwVJRsoCyZgVbovc2PpZs6C/U5dqmy9AhNkvxAq6kP0JH48\nlVbEdLnz0gB5D1ftOlpVn8w7xH+a8rJID/DZaB8JHN1GUl3s2+fWCYEr2FN0\nVw3qQTNyTTUsPjtzeSf+VipDpDBKZHX/SkJgeCaayZCtkfCZA7d3bRkdSjiu\nvX4MEiPSxcxTqExhVzxUyOollw4CgaBagvVpD1bpnHunnGYopitV9dvvH3BS\nKMOb+imOPrR5Qb+somIg05XBI+nUvHeX/evsUCwGKc57yV9o/BjjSg+z8YEd\nPB9A8SV8/Cw2CxJ5fCBV71an8CeP72n+nz8XsIC7F0E32IjvHJwfydOHIldc\n2XUXJVA4gn3LzijSqPRBneQdarJkjfqsUp5dz0RQEl/52Fx7Og12qVKE4mBN\ntHBv\r\n=rkkN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"719596bbad7453a56f42a625b5bedc45afc9f64c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-719596-krm5z87x_1627396795099_0.8592146268239873","host":"s3://npm-registry-packages"}},"2.0.0-feature-c63ddf-krm6zs91":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-c63ddf-krm6zs91","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-c63ddf-krm6zs91","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"582e263fc45f560b0add2601841ce7ac588a8051","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-c63ddf-krm6zs91.tgz","fileCount":965,"integrity":"sha512-T6i2QAiEXQyJ0hlA2dWUEkuMnUhDhswIMCq5uK79IXuLTcGMPZJJSyv3jkGj2wI5mdZIqBtRWf/AEgnlmNa/dQ==","signatures":[{"sig":"MEQCIDBQ26AK1+XPq0BqX0LRkvWB22zauLRDaIWSJaFzA5weAiBcRDcFxy6iajbYoe6FSVCGARXL9UEfc/Op3SD823Rftw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhACFUCRA9TVsSAnZWagAAdhEP/iTKJdHZ2XY40+Kv5wU/\nSFnVd9hgGAV85+jqXndTu2VLctfNhUX0zhZUbPwMmb2jTxls0tMdnJWmvDje\njVw4D5QrNzUYCZDNHLRq15isG7Y/+489ZQTIChKrbovYfYj66WQGiPb3AgiY\n5QoXNhwPnNEZHYwrQnvrl/iysQrotfw48HhPSFm5TJXc98y5TZXtWH3+6PqR\nvmIcJcW8fYmnxpbJVps5xfDpHNQUkO5Xkmun09OeOdhtips1dVKH9Fi/XrzW\nW+2W+gZCNFsJtrpVT33byIAOm93AZYTz4iI0V1onNkZww/V09mSZW+hTCNbf\nK4nPJ9kIGc3Onjvu8OHWBOEkB0z7xbeKBh1KE5I0kH0inGQrDerr6uXfHQqk\nFBcda4RjX3xEr+ju5rGHIwY1YJtwpZZrYRwl6IwVCOg9DVg+KUzlmrhMn9I6\nLMl3gFzNV8lrH1501nnMXt1dIkaNjl/LBzE57U0zI1t+rGR108zpWkezUeI1\nfNsHCCWAQb1hQn7nxoREGY3AJPIqYZHayXVrFXbNtGxGzkfp13hUi01hfAjj\nGWRJOkls/hAbuW6S9UberdMpT2dx0yArHvTQqcAkZ5npb9mcH0+Y0fsTyYf9\nHygzjMxGvBvpD6OHt9omfCx8cBQNaGsA+S5SUH72yZWgx87nMZywFOyzQkKR\nYvRY\r\n=YMM3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c63ddf411f4dcc9485cc7aeadd4315dd0fa9600c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.38"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-c63ddf-krm6zs91_1627398484384_0.5083150430469452","host":"s3://npm-registry-packages"}},"2.0.0-feature-114da8-kropf34j":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-114da8-kropf34j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-114da8-kropf34j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9ddfa38ebb20bfdae0b971cf5ab75c3c7bec0f87","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-114da8-kropf34j.tgz","fileCount":965,"integrity":"sha512-ADzyjPYqYjYV2ObC1QosX5yN9rmjOx0OcFLxgBMeQOYBpl31W6kCOpgNc2+fUhEYkxToG8XqlIPk486KogUtbw==","signatures":[{"sig":"MEQCIEZi+Z5OlD1to/gI5h/mbrqPVBpnwapqCQ9qNeO/afRFAiBIl7RJAhdgghnaIGx2GlsAqaYYgiIrNOdpELdVFcew/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAnKdCRA9TVsSAnZWagAAMcEP/0SAi++0A7szupgHdfk/\nC+rm7X4av9o0DUfPUN6F6+X1nUhnaukmlfuzqkM4/7rys+B3bZvi/yoLu25l\nMOB6A48H2gUpovKPb04z7gyTVgHHJYhpZz57cdOQnmYkDqZ0It5Egj4YZ6OA\nVQ7UZPeRztbW5j3VQRGyDQMTxWQbOftwAEZcB3RsuJDR3/GWCSov41mLZw4i\nBCTKRvNWGqSbjE4xeRqYiFBmSesWxJPtAdx+Ib7zprGz5DPD+7sacFjQpFy5\no2UlRysk5HFEtKc0Qi1oUtop6kuQ7coK5FbyIY0AmkcsxsRlT7FUgeSufNOO\n6JaCiusBUqO5ZEaI/OkcV/nfRedO3fPkDGg0VEw72RJDOjW3KUjQtGsueaQO\nf7WxkfEbU0j831dbz2S0SwLgezUlI6KBJyMBUZ0r4TiN9r3SRTmIYX/5qZOd\nbMY3jedHYgkT90r6QjeavRZ+z48ZslkuOjnq98Ft+vaK5x14GUnn2hEO1wmk\n40nllyp+HGo5a3cFPxNE36qgLb7VJNGvrObd2l3dFiTdA20mFt1DCzYErTIv\n675v7OoW82OiD0sJfmx6QLGn/IzqkWBg70g0HZqH0/lmn2NBN9vJJzwUU56b\n8QT5hqZHE1UJQGRwu6T0Zcn42aTxTgO8PB3VFTCK8F0touNbVZTzitDPxh8A\nVOkt\r\n=IS7C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"114da88cb16fc9478b9a31e250001241cc8f8399","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-114da8-kropf34j_1627550364942_0.5059981564838691","host":"s3://npm-registry-packages"}},"2.0.0-feature-31699c-krowjgdu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-31699c-krowjgdu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-31699c-krowjgdu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ebe3b241969b49c0c301723a2b09b34bfab38dd5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-31699c-krowjgdu.tgz","fileCount":965,"integrity":"sha512-r9Ru/hQIrZ/3XRF8zc6IObSSapktLoalyNRpz8Rd2MnKDI5bnJzppNSQTI5nJTsSMjHFL1E/Cf+g3+DyaaeNDQ==","signatures":[{"sig":"MEQCIBDXTa6BpxUF+xuzz8tu1VozzilYjzO8kf64f4FTtZM/AiAKbbaiwV5WmFSn+Bv3PsX9QiojyfFNPoIhtxfoUzo6cQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAqFUCRA9TVsSAnZWagAA1ogP/jG3OnCQQ+74Sk/2ohm9\nAEQgomDNP4vd4T1HwxxWaQ8lg8E+a7W0AnXrA5yJl+Mq+4goaFR71Kti0Y/x\ncMjFPKEaWVzE03FZVONLJ0VIAngxhOGg+kaerR9Tfq8F4VNdTeg7jTWeBvru\n2oJhE0b/prXR+TI+HP0nNNmTmuELM3KNxPBd+r02fH7JS4XZbAdPbyGY6V1e\nLBDMkZpPTq/gXkYaU2MEGRgpSoKGFE5Wp4RWvrq36e8pua4HHW0c3sQBePmX\nZ61/QFYDiubpw9WjlfqVAwUsqSp9pcTQHE89NK6dac6kA3W2z8SwU2WGWo79\n+4UoXyiL+FFPt0qOwjgBvfsBzj8ydXko6JwcRdi9lnr2Am+Dd4Abil3nxQL7\nZuvFeBrYnQR1xngj6TozM/K3vuW2swwKq0GIl1con6VJdL77HkE8WcXKjTTJ\n5dWcI+Fgbi6XpSt5OgYMOmHVBnXdL4p7K4LkoIeXmWkmr+J6zIiSInF1kjIY\neJlM5ItPk2/vdit7k7aSVhOLH3gcfmg0BhxARKuQ2yVtQRoEylIRHoIu31ik\nHDj7D1RwAnZqb1hDde+oZfDEHxEhzpaxpH7Z6vHpZT5NzXqT5gKX9xK0PlTr\nEKiiJs2h/AsO+u317kq0/pOj6JyPtVJgijCt4A6KBpvZl2J3uIBA2MOKNiNf\nDLkg\r\n=3bIi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"31699c85bb0b2e45b046f0a5263c7f820397b418","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-31699c-krowjgdu_1627562324369_0.8860923243427201","host":"s3://npm-registry-packages"}},"2.0.0-alpha.12":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.12","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.12","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"75fa1072703fc8a15d1cb71c787114223946a823","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.12.tgz","fileCount":965,"integrity":"sha512-AGHFcyBmsKznDJQD+oBe3roh74f0Z/0uveOiRKF2/35tahnMTSfTTnLH+i9xWVG0xKUi+N770Gqe0AdRJm+xcw==","signatures":[{"sig":"MEQCIFqjj2FSFdaTrIpOWaeIGkNXO+lmm4mAx8nWfYFz5RduAiBAo3N3CEPFBrGSXW8LD1b8ZWh2qDx/er/Cb5pT1GW28Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArSNCRA9TVsSAnZWagAAyY0P/j/ztuWfDwy6R2OqeEMf\nICsJTOWLclxfiJT6pdoRTHfOogul0oJo3fN6sHrS+iXgU/5Jf3x+r/M1rIlL\nRMe1wB1lb+NeP6RiUcDWb6gDipkQzBMkmKmOHbPM0U/WK9yMqhSVGcHgYId/\nLDGD1kBNgE4x9jYh5Yn/eiw81LXs7XZ0HTNxWlQxDXgT33sV1s73/r3a/3yl\nR+2T9HOrcuAq2S11JMlojVSAH4LOVp0rGU13HO4BcmkIgTKdGVWkY8+YZdQq\nM1R1U462fNS0FQePUK/cv0Jx2NZ7Ce++bWqBwUvSReumYEiRn9A3M//qqF0F\nejUrcLz6vE1kGuRqYs/0s3tqHik736aeTBantbQbDkKVOhZP5yec+6huBf7p\n3ErwkIxk9b5UkjbHgiipQFxrdM+6BSN/NhW9n+RpfmU96+D14j9Zp8HnPvYT\neu4D7mkPvx0WCGN//oy4uLy8aQQcY4+G8sbYRH8AZg2bww6o2Vdgj73LYhxB\nz2MfQpXEZxuvYz+zZhu8S9YF8pLRa9aGAOFZGGicElslx/G2gm3El6z6pQit\nqJYsbxsCc81JggDjSAmeNEXh5lxo4WIWZ/zTHUoD1KpRxr3Ezdg6fURUaTHh\nFpuVLmkhfh8Q2uY40QtfpKstX9y5G5nmCjCl70kcKxjppaux+4Qeyo8aF5V8\n9KxO\r\n=dD52\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"936b2d2eb34c84dc9da3bd0e8509db38da72634f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.12_1627567244747_0.8987486284048374","host":"s3://npm-registry-packages"}},"2.0.0-feature-23df0b-krozopwg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-23df0b-krozopwg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-23df0b-krozopwg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7e251cb314c102aa073c07f93c4a606cb878afad","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-23df0b-krozopwg.tgz","fileCount":965,"integrity":"sha512-2h0cVr0HVbiMMuC5RRcYZPco9CPA84HBu3+KahPfgZA6IF0ObXClCbzQeiCUsk2jRnEObnq/cDPPmZLKH5iPDA==","signatures":[{"sig":"MEUCIGvegjwls+2Gc/G3KHjzj5XdXodDsM141KpwrzbTLMK8AiEA1dUktACZqqv+TlYGBt9kFsszMWkEcIuxLLL6fvaQ7CA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArX6CRA9TVsSAnZWagAAZD4P/RQeGoxWWxd+gdmXZnV2\nbwfcrLxany5LOxHDQr7Yjde1B0+Rib4vqHk7Y5PZiGICSd3Ok8qB02gRsA74\n49+8zlxOvoOLYxK6aoPewaFz8cqPnarAXn8ch+s49Kq7odroly0yLB96rj2h\nJkzKMwHzH5FUIvjheKTTlz/h0Dprjuzgs/HfMmZJVNMKfILZ9aO2DJWhIxgI\nABtNWYOB4Cv5fll8xZGomUc7yxqXWaLCjy6DTaBxgFyM8enSEJSkgaHvvWgA\nxXLOgcH7dGyoSo470Ry/HSlkptaDe2S6AcOiyIoGHSME7oRAJefpD9Qc5TIA\nduDFJ9bmGsvHEmAMXmi2BOdkaCxeVw81oaCVvnoZITa50vofM1JDkBg3zrzO\neEihbtsV37bZaw6nv6y7trqyH4Y+SMn57MGlVjtnbjxwzNNJiOHPzYVlqM8Q\nyg3ecwr8vMuzb98Btz3sJ91FCKti5gUgrgfBD6zs3kWvmhtuV3ng3wEbqdbw\n7pLbWrA1xxsf8fpl2UFL0V7qpe14g1We0cNboJLWXeL9gS9asy2nWFQGauAd\nzItFz1oD1XROxE7lA0KcLqa1G42qGUpOJpqTUjakJNVr+brGLnIlEsbGCJaV\nXxeDQqQvkg6TA6X63oFK0I+pervtwEzdju2o8j9cX35+bxKzImhSYqq2xpv8\n6sdI\r\n=4+nJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"23df0ba786f2854308ea5213c3ecf6ce6b756753","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-23df0b-krozopwg_1627567610501_0.7188833822574394","host":"s3://npm-registry-packages"}},"2.0.0-feature-494b28-krozotnx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-494b28-krozotnx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-494b28-krozotnx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e4f44d8b9ea73a8dcf65f3fb1478eb1088ad276","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-494b28-krozotnx.tgz","fileCount":975,"integrity":"sha512-U0kwx+pjUwwD2o7z77sh6fIo7yVucr/rIrzCFt6HYCZ5IS2QiutBMiM6OhkeOV9KEKGIfLQqhnPqfq6rNx3XOA==","signatures":[{"sig":"MEUCIQCmVYjJ6uFQi5LeIbj4JZwPj7LC1YA5PIOSuMokl1rLaAIgD15CX0XeTQMEZ0E4XXoWQkQJNir/VoU++puIiQj/kwI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArX+CRA9TVsSAnZWagAA3qsQAIEySayeGCGFNqbEnp+u\nyOB1WEPrAOQx0oFjvji2O/9DlOJ1bJSMygfq1UeKNYGE6+j4h11C9Gk5O0Hz\nR6m7ruKFNLCY/U3vmNUxUrTPgPqoTBkFZcJEHdiLJyYPgvYg022DkQNvlJM4\n8kStEG2RCN68/1+f/DaA7WY2VFfp7TgZ+U+UQHZC/wZLa3HYGFEFEGyK8xY7\nQSFyJTMkld2ZrGIRaYtj+lpo901g1E/FihyqdVG8jZNitIf7DXr6AUOU31Xg\nM5CoynK+wLeYnCHjYbmZ4FvZDvH1kjXVzf1vqU8IwawHMeh6CGVhNnkn+GT+\nNiSqml247mPvo7noIpgERcP0vVlrGf2/onerm+l6z0e6hW1cyLDWRp9BOh0V\nBqNfU0Jhkj0BmY+mfuUKvjyWx0TTAmwUZZai8FG9lKHSGoVSmyv5YbTF9U59\nVvvUKqzX6r77cTXXlHwYmVIR3grSJ2Ld1A/VRE8FwQ7SODYjJumjjTWIeW84\nmVDqLYPq4ZNn5V4lIvE7HqB4HSCGi/23UA614P8Sr55fRzXuIBYpOzLcRLMn\n5PxYR9Qe/z4RC64JmcPHkYKiG+dkPjlklOPwRIdJMe/LCrtZd3uZcMts8BPk\nvEs+xWF/RHTRaINPifsYjPNTdL2I1O5BgCt7SjKLo8R0JXpKutUI6x9jHs00\n8tva\r\n=K+C0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"494b2809f29b661685fef52538222f8ced2c6171","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-494b28-krozotnx_1627567614286_0.8320203283137604","host":"s3://npm-registry-packages"}},"2.0.0-alpha.13":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.13","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.13","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"041a33577ff079d06a18ce66918a81a5fc6c9698","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.13.tgz","fileCount":965,"integrity":"sha512-fv+xE8stJtl41dqQn6H9Gwm+TYDxnpCOofBjmlxNY06NgYrZon1A6ZsuqqNfrBWM8iXplUaDas8B3fpsAOf9PA==","signatures":[{"sig":"MEQCIACAPjIs+kOJZ5vZNlzcNdYoZxKpVxbGmwLViWsjFUvRAiAhNkjxHqcTtKU2iqEeA3MB4ywUtuEZExe7ZCtn9yA4/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhArhFCRA9TVsSAnZWagAAVIwP/1BwVLphE4G8sE0hLWc6\n5HvPHUc/0ChkUnaMddrdMyE97OFpgsdBTf/7GbFkKdI6aXPA3sLAm4urjFWc\nRSa/qmq++biN0IIYYrvLIn2GeiWzH4wJKTh7JBfDmT4QuB0mPRO7B1+6kh0J\nULsmxSvjzxLiUW7cxwDzgccvNPgwbZQ1E+9L8TTb8i4suHRUf/k8kij9XEOz\nBjA8fb9KVc/A8dGgIHQ6Kj6niuVrGKhG6RhfNvm4pXZBveKYEsTqpxhpeKKa\np1pn9pyN5nJssJYL9jpGt2fqDKrGsO1sxeBM1BVulQxMnpUZnrEIgp9Y0aPl\nQOBGK7KYIRgCNUUa3hgM3Quwz3lnrU3YZ8K4nJ8LgWwfZqSU97WKczx0h9bB\nRNUJui2N3nsjCjavj0C8eACaDDUYTpvywkg3s0JJPz3FQ27qy8dGeXOBKo28\n5ykvM7PGrY1u2qLhxe5YxptzFwqyXKge/1rEcVYN75usFLSNsRtWr2yyzxGQ\nGmXiMFxsCnQ28RKs55QREzD/6qEcHBx//ky6g4Yz3/lj/dZzVkuO4WkJWIPK\ndg7eoXDE3lhxDFrnzVuI9FFluRXryyzChzkgrn1zKxr0p++cUGCjK8np8IIb\nGD/tuEtvD7qaS66YSTeDbgp7cAwHNiw2TH+ipIaFhWSXK/c3Z1DQ+ZyB8H6B\nQ8uh\r\n=yCNH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"936b2d2eb34c84dc9da3bd0e8509db38da72634f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"obivarg","email":"christian.werner@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.13_1627568197255_0.42863737823690884","host":"s3://npm-registry-packages"}},"2.0.0-feature-045dca-krp87ztf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-045dca-krp87ztf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-045dca-krp87ztf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a6a7e977b44a61d5eb27c9b7d4540daf9184e65e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-045dca-krp87ztf.tgz","fileCount":975,"integrity":"sha512-Ro8CljxKs9KHE3ZaZfg/2aA0H7eNkuCYslO8+wTIG8J1YO1nWnKIuUy3uAXF/lT1Un7ivP549G9nZCt9uA805g==","signatures":[{"sig":"MEYCIQDr6wndlA6YHpEbSNRj5jqnF8ANZQZ9YEF7UDNDjmWIMQIhAPSPYeor+oRBM1RLMfgMZhZRGlCCYIRtaNSv3d/FqH0S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAu33CRA9TVsSAnZWagAAH6QP/2hy7j2L2xhShmc3v5tl\nV+xTk3FVFk9Q04yalGom5f3OeHKayDteZ/mTUsk2fBurv5dXhYz3bpnjmTdU\nA3R+GwRu4eVf/RzVsYYUlUd8Hp57NxUvC44VKOQccuTEIFSnmGEjkZ6eKjqe\nS0Kp8OUKEZ1iw6yFkz3suTJqO1tYxWXWp9z0iua6TFXoaDprheNyRwKEihGz\nqhBsyErRRG0ESF4cF+f8HJTouxQFVApYF1fiLDueQrdJRCQPtxTjCDe/FEi8\n7aC2xhv2UNiNBJKr6fuyYP8o3g2OkTakLNNdiiw9cRDRC9R3Q4LqLqvmccSI\nQbaPKgsvjB961jyYXEhXUY+P0rKXctlCc01aQOgDGobtZq1cmViyPBlgHuic\nc/nEgQXADiOdE65HGhk48lmMoy6cUfyiu1i+zgz9wLBdxxwEwJh72PKPSQno\nxw+pb2ofjA9EDUOiKcPvGraK+bkWo2uZvfh3cFTZZlVNEgUj/+agb7MNSX0W\nINmHT0O2hSvIbYRegONX/Fg+JFg0OrQk9K5qP6zY6czhH9pmixhlrugmN2Nn\nXiK1Vf7OgD6qMgmfTSlhdnI+OtSsIT8ktA6mYfoZDZWVuH2l+7Pr76xfh/SA\nL8YaQ4N1AqwIznEe4ZGNeS/JxGYKLDvK/s2Gd/ugsthCy5fC2Hcy4KN/ulZo\nCdnT\r\n=8ldL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"045dca6c34368c7b79814163563d5ce6aa1bec9c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-045dca-krp87ztf_1627581943072_0.2739279769490117","host":"s3://npm-registry-packages"}},"2.0.0-feature-b7df60-krp885jt":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-b7df60-krp885jt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-b7df60-krp885jt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"52803e487cadcf46b5b11fe6de6e345eb4723d64","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-b7df60-krp885jt.tgz","fileCount":965,"integrity":"sha512-ujsFFHmd0Dzz/alZMRRYJ9xBp/IuC+AmfS8D/RWZtFtRFc+mE86JIxofRYPooRO/DFgphT/C/tlH45iSVMJ75g==","signatures":[{"sig":"MEQCHzxWuri0lDthaCoaSMufSoI2uxIWn4EDtr4lIQfsOp8CIQDA7zAlzaHG6GXTAyd2I0sBPhMrzxi3YugQZsoNbc8xug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAu4CCRA9TVsSAnZWagAAz6UQAJEP8BYasute6/f+CjUx\nf0ghmCUCRrpFYywWLmVNPGlTp2fAcV5pcaLUN6I+hRWwUycGQgTlhorhRJFp\nF1mrvlcUXqNUkvYznU3oHNHVlAhzUs3RI3xryecEXPbYRPepRstVKeZlHRsp\nVJtB5mNgQbxaawGPQvFt3YL9oesRF0YoAItghFhOt+AWpvJhTzT00w4ByriJ\nmmI4q8U6FFRgEeDYQzr5Risz7C+fRvkIT7wjK/yy1ftbWBgtyAOz5AaoKt+a\nPfOpo8FhYmezTp7vH0CjEwtUh0r6TuOl11d6SjUO2gKnAJrSjnGqB7zJ03Gg\ne0qWtuPgsd72a4TVP1FWwIcvyKmtMgwxYgAAZbWyuozy/XBe4BVLsbm+JsAO\nw+zQKXv/8GG8Ov6iXvqzTurU6g3PSyb5r1wOfQlXpmV1A2pqn27LqmO9Ua6B\nEipy8qp1zV4wSbElRfDKclYeVrOoDMgmMqB02vFr8Z8A4/LUeoGJhgxE190H\nRo+0DXVEd/tqRUpzFURoPH5NDjbDsMKzPQuy09biuOp6nc2TR2HnBiGMY5Xt\nuHd7rhcbgMwLiqdyd9giguOkeMk9ZdWIthEy7UtGDXOcaHH//RpsciPataZY\nnvvArbHJJpiikz0Wl/WVfwFBw1qD4ayqVjApQyhuLuTNXbBwkJP76JUn/EwC\nSVgi\r\n=JsjY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b7df60aa19a157f29c1c2f3f2234dc9cc1d312e5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-b7df60-krp885jt_1627581954174_0.1563319049389671","host":"s3://npm-registry-packages"}},"2.0.0-alpha.14":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.14","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.14","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e1d23e26d3f5c1fb6028c4404e785fe64e886fb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.14.tgz","fileCount":965,"integrity":"sha512-nyS/z978LPqj5IpIia84C2DYWwgZAMC6aIkZC4Q9JCKi8TX2JNieenuN248S+P0hS4jCI2PpaP7HsHFzCw6dRg==","signatures":[{"sig":"MEUCIGCXdrJoe4d6DGPMeQ9Sp+40W+/NO2Shnr8jN0NYKaskAiEAk/vyd0r4WhByYVw65sSv7gVihsQsuXdDHYFhfu2T6fk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhA7E4CRA9TVsSAnZWagAAfFoQAJhdCYl70IvvaZWCK0w6\neG9e4OMrnAUH2N6lQadKbMD57x3KXpocoEzDljsRdZQEeSbmMWVY32ulQrAw\nMSXRCtaj7HLXbudQGgn17YaC9TJe1huGGtjFLhxks8JhXz1vfoMVninD3/XV\n4jimmdxs+kWnDz215KIHOMv8EsB8em7rLTmz54cDI35g4MIb+ku5YvG9nECE\nPRWva4tuLK+puzJX/tCbHag0kPVf2Hu8Ko21ngOB5fprf8ZI8haJWpsw1fgY\nNRmcCuVOZr28ilYnEm+DOOIIiX6Br4DCOGYXleNjoy1dEXZvZofjtv/zwqQ3\npWlTBGFDS0pTP6LZSQj4uq0+mrGzkvIB2qwhv281FHB+/ORAehcmHGNwfCUp\nEZA7v4cb9wtuUjm0YUufuhq+LpwUzlzSZGSuSreeZ8fIdlEp6gkw1LxhgqbK\n04gmOx7D5JMQVgHopSJ3wZ/AqEovpZPZWyDK9eXSeuhC2e9qlHgUzXtrrrQL\no9Wn7dppqeZXDaJwbb1ribBQxZi+ZY50Mxe/fg3+b0X56hJf9ErNhuYnr37W\nF0b63BoZXlDgnuGHJP+KmHoskCzx/ajRFWDQF6fbvz5AN8T+6Zgz392zER8T\nTcyKVYcpnnHoDj2yfKcKW79ysM0ByCdBZ1Er1VdApOk/EMAhzM3ZNBRlbynd\n4dRU\r\n=MByk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8fb55d8262ffbf01c97702ac13fc1b0ecf809781","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.14_1627631928492_0.05918766612265669","host":"s3://npm-registry-packages"}},"2.0.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"51e9534485b1ae7e3bc853129e30dcdba0fef0e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-beta.3.tgz","fileCount":965,"integrity":"sha512-DXUcPkTqO+jkouKVmpjWOP7u7GtJR2oT7BoTEpM7eBHTgamTNeW73ny/NLWUtp49GRbb0f8tfvVmlJ02LCc7gQ==","signatures":[{"sig":"MEUCIQDCq7AwxpM3CZT68lQuOF+Uj3aoBoj8X+jC/4QjPrjvDgIgCYgELlyay2eQGOsckBX2VHrAXSSTr4uRltTnkBKnds8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhA7FMCRA9TVsSAnZWagAAM/AP/2mF8v6NTxHRKykvuR0y\nKJ8DTkemdXmQBYhCsuVBCFg/M1LZlA9S53tPI41vauqM1qWrgxaUveJRMdtn\neMOErg0BWJiksnCEz0xFK8s7QiQSU5CdFF2ZCJrhar1xsU1xc2gbeFLtBqFY\nQiVsPAFeQrOSCyA+dgU79/FD9NHM7Ja7EaZRLtE5ZRFOn6IAn8GJUnXeYQch\njJ2MgAk8dtXhrIWBcHvVzvIViXywL1bELNuph3mxjYz6feEmXi6XnPRMnvQQ\n5VI+V+prfRh97s52AliTQzW0DW2oksrrsB7R83j/T8SnD2L6oYehRQWrjhPg\nRScBOT+Ci3KY/wxjSCyJI1x1ShJZCtGESkeOKxK/fy26ngs7vRrOA1+RzQgK\nydpSAmUOY5YKNOCGspkhQo1hcbbe4r56TA+AC9Q6Ym0IPs00Tsxz2FqAOoUr\nQ4FykfPgy8m5cujVkzN1GdFfPrxaFsrQUkGQZPHOUAAgaVzJ4GBbk6A2OnDw\nDZ/uw2ttAHwpoOFQW4EEvFo98qRn57/+SpeUcrDjMO7jiQrZjTkm3onxSo7G\n/tuzHSC7YfYJBpLQiTSoX2vPNdCq+73lax6P9qq8vV4bjDovdclQxpKFFLQ0\nZirAwD8Nk6YQ9fWCf6d/SVrzo5IkyQviMJBY/deWfzxWxxuJBt2uzypiLE2/\neR/c\r\n=sxXm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6c9e014817ec4f2a512fdc0a140d481455ed570f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-beta.3_1627631948252_0.04386052411547636","host":"s3://npm-registry-packages"}},"2.0.0-feature-f0f0a4-krq2dl1o":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-f0f0a4-krq2dl1o","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-f0f0a4-krq2dl1o","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d52787e6d7329b235c501c234d3b75ea4b85bfd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-f0f0a4-krq2dl1o.tgz","fileCount":975,"integrity":"sha512-cUw41qCG7pz+yh0MkDYOKHigK86pMm8V45OFEQ110zuzPm5kXxSptKLoTk0Pbce+TThPRgOfkvbVrahJOPjiQA==","signatures":[{"sig":"MEQCIGC2wa15EGB6ORzf2amxbKhKzJzAtnl6ooV/1IrtaqhHAiBPOKihhaHUxfl1JrgIXNN+3XT3hcSJ8QfZsw5Au5m4MQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhA7PtCRA9TVsSAnZWagAATL0QAJNRZEQKJbqCmyESoMlN\nPs+XYw2ZCYqIJkPW9I0WgqE39rK50MqQmXojLc9XpVUL0G/ZGgZ2jTBdRN/F\nhOeLurUCA5HJTezzjbteLGiaiGO+C88UUh5w95QVewtiM2lgfYzsgUZ7V5Le\noomUnRW1LvdCxFzD7Sx0fflPCWh3Dp0hEv0duysIZI8A5DCYEYZGBoTldYMU\no83zA1BcJZw+KgCWp7tPO+NRgveiHHvtIeAow4lYiqZ7KkGcCsHUA1fIE2w7\nO44A7SotB5Gk3VdVB/qgKAqhpFDFCkUEezoznaTcEl7aG/pT0I5d0pTuXjzv\nOiaXp5wjamVxefD3QkzID8PUc2kkKZzpSNfgfDbijo4etvmnovbfmc1vNTVZ\nMleP/m9XJLyq2IIRq/j+Dr7ure3txcFi7sOWibR5str2dXLF3GeutGtoI+Ob\nqy9XDaV9uiz2+bazKof8cr4jlh6s7EccRrlaoOROwH1cnd07IdtEdke2vqu7\nCBBRu464zZ1FAva1lZx5n9pnrAZEQn6sR4aMGY6TrhMU8MdzbNLZvE7QW0dT\nTxyNcFi+0EAbrpWswmmjjXJd7oAECQCX2KMdE5JHygGpqDtNJwYQ877967rM\nijWc53F2alVrTpxRs2UaXdqY+LocuyqdMToSaXm6hjqI/YqsKMQOKy0RVryx\nkySr\r\n=Pg71\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f0f0a4b7cb11bbd96f93f103786d6c94a297c18a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-f0f0a4-krq2dl1o_1627632621333_0.4899899891209991","host":"s3://npm-registry-packages"}},"2.0.0-feature-b1bce2-krq2jpkb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-b1bce2-krq2jpkb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-b1bce2-krq2jpkb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dc1b8367064a4906bbdf7ae9a507f2cb49772d5d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-b1bce2-krq2jpkb.tgz","fileCount":965,"integrity":"sha512-gk6Bni4e9Lhf3kPHjkBL7uWKm3Hmgc3oaxAo9XL/m1lnS+BCxBOiaOAUysNnCR4rbbiEOo+Lik/BDvVAUugu/g==","signatures":[{"sig":"MEQCIFLmEXneQfdUM/NwClXav5WWM8toF83zHS1i6d2tRyAqAiBxTzOFEuUWCuMirxilE1WTG7GnAoGYMd69pD9UCjEuTg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhA7UICRA9TVsSAnZWagAAuY4P/1q7H5OlFsCl2VOoaDdm\nCh1isN8QGiOFX1ljp/ka4LN7b36mNKopc4lfvMEltgeneZgpDAD2eBCUfp1W\n0Gy4f7tnPaARI4md6dLzaa0aXeJfN0RDMx3aQrzvmbaqDgCaEf2OhAPMg7YQ\nFK+Dc7OgsUiJie1vhLi0cF6Myt91qtErgsesxrkoX9jBZQZdPHHz5ZGr9mq+\nQCzdjLhozPNWCX0q6lRxiEEgoJm7N10YIU2Vt6uktp4uRprbyuf66JE8jpEs\nyFIEwqCfiEoH7cCEkXAnV/tRmHMNyyV8fgvHA4tNJaNbo6sgfcpALaVK/mzM\nNPDv9mndt2WyirZWaa2lVvB2hRzhlKd/Je8DvFlS8Sw6rfLreuK7FwnAx1Nk\nqql+0zcnQQIym85MUvfdnOQt3ntb6p68PvHkurZUK/HWBjytrQvKh97eHmOL\nILJkDnTiAUeZfaZ5Farbdnqq42Y3mvaCv2FJI5t/Y6WvSR4l0094Qb5ix7ls\n+yf4ro/SbGNRnGuR4ao89rFyFOwt0A8Okwd/WmjHtXAXRObT190t6ZJCZxJw\nMqZ83iS+vqDrhq+vYFq/+0GTmddAK3MR/WaDNNZXU8Y64X5yjUboYtj6yvaY\nEeKJHfhTseAsRA6TUN9ZbsHcOTM0shqhvPBgYaxfC/oQ5QJwtkJ7LIT8KeyT\nj6nw\r\n=SBRE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b1bce2cf0e20aca8377350c10379a560e54499de","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-b1bce2-krq2jpkb_1627632903944_0.8386678513592318","host":"s3://npm-registry-packages"}},"2.0.0-feature-9cf175-krupzv04":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-9cf175-krupzv04","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-9cf175-krupzv04","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f616911dec14a34176df1a234019cc0849de3821","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-9cf175-krupzv04.tgz","fileCount":965,"integrity":"sha512-SZWdaK4SBdYACcXxcfZTqm0O51r6ScPHey4jobEvct6jkiQOrcU5x4aLwFOTWRxHro27gLRP5UHMIG7qCuYH6g==","signatures":[{"sig":"MEQCIHrebEVkJVBkyALS1Kf63ZYSHgCYM8d+4qdS5kGAZvb9AiBDj2tJlGC376bHSmDjAlqLiiRcHG6xPYqqixr90RmXIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhB/+TCRA9TVsSAnZWagAAfPcP/iUYWdnhodYI6tV92TiA\nJRqMG57Oi0ZhYJGpYqv8tXjTkR6obHhsV9iv7IWiGesU8cdEx/dWrQTIhTaO\nAxW6TA4190wAQEktrJV2k6WQkDDZ3l7TpgKG4P/Xa6CTttt1I6jeinfRGP3C\nqMMs85++Tv6g2Hivq7rvf0JsqE9xJ0BcomRHbzl9ji5+89Z73YbQUimA2h0W\nmqtd5msDqj94YsmfFWFUT/7dYMz3f2eyF8n5AWvAT/dAZ2jeN7ih1pRLFPVo\nRP5OxVP1XsGAbl6guaaonHKILep11kynGu8Qp7tXojbr01U1cIppEJbzV8NX\nef0bMmxMqXJttoAOGMiLAqbf0Kfd+j8V8y7AxxmQX8sEVT502uAE2wvU897i\nzWUFN7iXuKi8qbzFT+ExM512la8Ux+ykHsUejuEsCxjVrB22qnrClb9cMdHe\nExQsFeBEEdaj5DF6nihrxEszyL+MVagWnQ1ge6JyZmTfgVJuCCLGyoX1ey0l\nG3bNASrXPBzqKcqbrQHhKnEVQPZXseBTeshT7oLFkg9eG1VToVo97bVWOEpZ\nEZElFVnvq45pBggkc/tPvDnIgAGQ5oBnZxMGNC2wGa3haGvbmKKoWSCOYdpJ\n5HcgalOMODijdAfY892asAzDgJ7stYPCLec/UZzVrLkXXg28hbfSLJ1fOiGM\nTOLr\r\n=O11n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9cf1757ae69bbc3214216b8aed5b810ce83b1f89","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-9cf175-krupzv04_1627914131221_0.826267615736914","host":"s3://npm-registry-packages"}},"2.0.0-alpha.15":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.15","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.15","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ab7f042fa42f7b9a95fa06bef37c5f2942c69c1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.15.tgz","fileCount":965,"integrity":"sha512-F1lGR4lu2HJQzcIs4urokfam6c2SI6y+wQbZ8s2oJ0JkVBA353IqcCGJd7KzboHfWFKaudXR7Q+JzwPkfRVqVw==","signatures":[{"sig":"MEQCIHX8PXdeu7gQ63/cQ5cEL0l9C/Zr02iwQj2WbMq8YRdlAiAvHAPemylFLN+n1N7O270ZAl461eBO1uPyfnZGX1izIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCCB/CRA9TVsSAnZWagAAbt8P/ieQr3P8EOqiNEVEuA7L\nAHBOhhzvzwkk0sr5qnql+T/o+Qv4H7f+TsKfRzO0UHjYHBFw7kjLuajvlEvF\nPWxsrtkwfO9by3279KOApMYoGO/5WVshrkGHEsi9YjcqDbqeUD+p4joIg7hR\nEfycWnbLxBiBiCUoD1RBoS2cCv0Y+9GWfdLRYVcsljaYvtFYjbYkoBMOtyib\nPiSQCG67eiWuFe/rTC/dJgtmAj0926ikM/blJBJ0V55WPUhARyr3S6K4SUiD\nwMG3zQqtF1RgqwmdqMTqkD1ShCX+2pGClQ46IZLSeunNnTG+PqePe8MIn+8t\nTbimrdjK7nfR1cfj62i6oQ6fRkXkmRrPvXEDMC+rYUEorJRZiDQTN0xJ5Vqr\nN5lLQlGU6BWuVVO8gq7teDc1gdl9SdUsrac0ia4CRZbRSlld2Tn1t72bVBfA\n19m+CET2OCh4exGUTjldCzXviYtcaACI+8NXK4Y9aW8eqMyuA/kDqnpD1tka\n4PZzAA+aKFKH5e3+Z3MfrfPhquajOsExp5EwEdpLgNIyfVW4CYlV7eD3wwde\naNOY1ghZJzleAStxo7DnB1a5xOJ0c9FMMIh+k7dJ/UBF362gpDZloOzOlecK\n0GtC/QS5gj766nRu4mnZn1xY18P8KnKNgeydO0pSClGiKqr8z4pbzqOAnaL3\nh+TU\r\n=SFrT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1d79bd6826bb42910fb3463cb91755b89993ab3c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.15_1627922559075_0.23594515609161104","host":"s3://npm-registry-packages"}},"2.0.0-feature-b9289d-kruv3xyl":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-b9289d-kruv3xyl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-b9289d-kruv3xyl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6543445347676e9847b02174ae6d1c824d29211d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-b9289d-kruv3xyl.tgz","fileCount":975,"integrity":"sha512-7ag3WCRqViUToay9XUpY3qqEOfKVjKbjmrNsMpnRZo+FiORdnmETYNo4/+rYVfjJpSjSYPaNYB6hFUZ1SXwowQ==","signatures":[{"sig":"MEUCIQD9rTOdaTWmDsVk+px1o3QTOIzevVfBY8xufWqrWeUOkAIgWwNc9h7A1s0w2yOSPTAWEwP++XwmGK83s/PB5G2dnGs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCCEtCRA9TVsSAnZWagAAvJAP+QHFeDN56m2GjvEfgYGd\nZfhBMPVLONTtBZQlqBND4qvlrzSqv/STeZu6yZ6RS+vmjn4HTdOagg3OlX9w\nz+VR5yfLZ4xJkTKK+l/sNyHhkFCUWKfGHBv5n03JC7rmQjx7D58Jn1baFSCD\nG1WQCJtGLc3u8XI4Pexh/ZPdnxt9km8luYw/YpQCsa4epmirPCu7ZovPoGKk\nMV8WQHyn2PGf3/zV6pB1Ry+JY07cwl3Pp5uD4iHkXbkEtk6+tXPaUZhy75e6\nem9HU7BmAWKVMm6gH+7CHckeEcHGJlcr+3NwwIKfvR4jJ+6BfwEkSltx1GqA\ne9HwiRJBaqZR8JBP7u0o/aq6Ynsxvf4kr63/an8BJbiHrmn0yEdXJNLsQOL4\nF1aYufFnTXGU55qbyw78bSr+8HIixywAJ4bWMOkMO1StJFmP3WbMXMl0UV/K\njMw0BmbHlzvgw7hOKSr5NXOxLO7ymOdAtgJ7Gkq363KqJz4Wob1i6m/IY2dl\neLgw1Q292u6tCF953ZJrlcQvhA7hCPvJdqjgV+WQAwv21+PuLFoI7OQMJYfh\ngD9Ho98NA3Zsn8S+l49gzZHB41JbzIYu7PH0vhdAKQwT8XN0F72y+jcKdfV1\ns8MBdxO719WsBZR1xJTwwq1zbBildmbFKrAfNhMCpn7wVG9QW4BN+rkWXO7i\n/ydU\r\n=HIeR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b9289df99b7c18e69dd8b1e82172f6b9042827a2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-b9289d-kruv3xyl_1627922733561_0.5278869600881406","host":"s3://npm-registry-packages"}},"2.0.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c4ffab2da5a2fff12bf9faa08f69a7d07749c2ba","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-beta.4.tgz","fileCount":965,"integrity":"sha512-MO11aGvbxZcJ77b+jnn9ARsZOGWEboUTeGpFBIjeawiQwlu1kbQRT39yaQOVD8qfwm9C1jDBrJ3kIh4X6CYJ6Q==","signatures":[{"sig":"MEQCIFYF+P4xAAGKGUlK4qx3Na7PDIIBRb8kPx/f5gTCflDiAiBg/lQFX+RxbTrp9ZFbqFxShckr4+OSNzy9/DypYWzO+Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCPtZCRA9TVsSAnZWagAAO/0QAIWwJtr9WZj/HRqxulQX\nQ+iwt7GO/KRO+uweB3eKm95kyYi5kETFvSsSplVJywm1HtL31CogfRqbZRww\nqwp7YUfI2IWp5GlD9mXnMmiu2r5UiMChlfVQC0VUlYeHiEYi7YxXVWFcS9oy\nlmsNsuPLsswX5d/q2S2q2/2G+rPsfJTQ/DJ/QFiIcbF9vh/PQMsIbpi99NRN\nV2wTenn2rL25IGrxlMIfQqOGSYOzJaQyTyVUa6eg8RYQZcG8KzyXt6p8q0bv\nfUZ15qPO9gZuDjjdceqSaXMS94oiKkuSGiwuDXhwbxjNiT3MLRUxAwuL5QmH\nmsm8skzHqSQtLGWONg0VIev2xF92bTD4YJ+erskhx5MKDSTqFzcxrkJtg2ai\naUrjEpeKfYpad9R0QLU3BkIuYrhy9S6kQalvqjGF3OnL7kkJ+RbWcvdbhnoK\nTsSYygxM8fQyMskWwz7cM8609LjmhcD3QdZiMqD58UYfAQ48Vn5zlDPp+Ogp\nN3AHiVlalGMwyrEwMR+00YGWyry3dSb59GvPLiwG1pzG5b9rxzmYl3PEuFl4\nMbAKHZeixwLXN8WEoHzkPY6Opb5PODvEmB6kV6ynuXce/uxisVc1GXyqImCp\nw/1i50JJPgYh3kzZLFjgpuOpqzUJDrHzECxgmFS5IHtNPfcsmPBaLKJ5yQdG\nMdpr\r\n=OUfw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"95c605a4aefe55a4ad4e99fc232d0c6e639a5fad","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-beta.4_1627978585696_0.21368688647105127","host":"s3://npm-registry-packages"}},"2.0.0-alpha.16":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-alpha.16","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-alpha.16","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"29270dd84858260401183e4248d14c36c7b73375","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-alpha.16.tgz","fileCount":965,"integrity":"sha512-ZnMKwvbsyeh5+2F+HfH76RVfzWCGIWGbyDt52NAJZIIb92eDYSebY3hZNWTQ+EdYVYhVb+RpxPYLZVNg2fmWlQ==","signatures":[{"sig":"MEYCIQDlBZlfNX0C0jtRpSDNHacRsVsMWAei3TNEImNzv3PGcgIhALgbm/lgKSRO12wOxKmW9PNrJt+6+CfVZxmYxBQg67+S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCPvYCRA9TVsSAnZWagAAqfEP/22nnD+c0ujF0jOOHbV/\nUFDPct8H4fseaps0Kmb7qSRpUm8cszGGyCe2gYDULOHl3cUc6AINMsxOdGPq\naCPrRPTrM4ANxj3w3wl0ASPu51qQoyhrjsyorPWj2k667bSB9wXNnfISD+5r\naOfxjpvbZfugECiQYmcIApFss0ihoqYl1RU/WVKYn0PYRIOlBR2RnXP0HhVo\npMygPEPmV6zuNMntZYL4hhXol3Zg1dnaQqUa675SsyBsR5VLK7cInyVdBJi6\nivlhI8pVGKxU5KJP6TtCj+Pam31hOYMLmb5pgISbyOoA9zCi/yBgULOGkVdp\nxpemOrG3+yoVSTeEBdKFhWSji6DuRlg1287flGBFQUHM4z5lDUJpx1tGTTyX\n74Q3OAuUFq9vn8a+ZrTlXm8vDDu8HZKczAVgqyZkvMGRflzx5vNinfIz28gw\nld84FVeFd4+WTfSWpO2c7Y2DLJKRiUJEyMP3tBOWuL99/e/zVO+LsmCO0d3N\nYFH66ckoESpJowDzCtuY4N5m73Dh1ytZGe2H2XrB4uJsuFY0pIgvonEsJspq\nql4KF9I89WrzTnctlyGoRDvHnJsKbbBSft7pQpxkkc9sIzRzHKRQ0r7xkeM5\nwYmt9258HJCvBvrcRUzdXYBc88sfx6mE4MjW7lIAqFJrPo+miOMOtbMgHQWu\nrgMA\r\n=rOin\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6fdc87f85baaa9041600741f7e41d0d88922c2d2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-alpha.16_1627978712080_0.9543620539795548","host":"s3://npm-registry-packages"}},"2.0.0-beta.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-beta.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-beta.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2f901b14f94529f9bcfec66cde5f19b729277060","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-beta.5.tgz","fileCount":965,"integrity":"sha512-u/+Kgjl8kZ7NrVhyl0PxblMvhDQ8ov7AJr9M4SeFIyqRy0f70zEtHR3Xhbh6AQPgIZZfckbU2hcCQC5RpjE4Lg==","signatures":[{"sig":"MEUCIH54TI+eGFuoCvAZme+agP2rXxmnI/ATNThaUFVXzbQeAiEAuULZYLXiFwmlvjLxsxHgGr1MSRQ/7vFBnojOFbQd8DY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCSuCCRA9TVsSAnZWagAAInoP/iyzxaeyV2lxJ1mRsvPi\nuKqpjafzzMeMUd7DwuujW9koWsmAylK1wW7fnDjClCQRt0YwrtJiHW3ArIzL\nFefJE6jWo9tTahnP5cr9vZYDAh6fvJXF50cZgQAaUaD8l+62wPf4IQY/Nbip\nwHj9AuqDzciqu1u4Fhr0T+NL0CbZc8mBB1iHF9KvxT5akyDnGe4IqSLhbrsi\n6UQvBZl8nFYFK2jLRnQ5fz9B7uU+wLJprdXmW/J11xA9xWd9pVg6k+nBjS3t\nGtNx7xI9tDTM3W7cf4wfTFPysTLA+K8rdvgX/aBtU0H4FRjPe16m3KZ92Ylu\nyVLyppPP/Jq5tvvtl07MU79h0BvH3sLXG14/3EfPCnIgIyYxCdubofEFPHn5\nbg81FTiD2ux9Wblmc2eyDW0F+1HwyNSlE410c0n+sgZBF51S7WXKttJ3Ghfa\n7UsoZL8RnM3nXkH3SK+jbIA2S85IcYeeHuHKzi5scbio53nA/GtXij8UsCV5\nqkscW4CpxEUAvLrbMC+B+RrcHKaxUpT0HZvZ3nCZYsNth+11jFnLZHBj0F6e\nWIr+2hGk7Ugy3hFrxDV/Ll+WMz++3hd8LTw9edcQPtgm1IaPlMA4DBQQvMql\nL7GWEFG6XSElstEGKx6/sbnXzXjq9mCKiiByZoh2O8VO+je123Xu1Br5RISJ\ndZE3\r\n=+HcH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"893cdc781a52f15826159cbbf9a7a07ed3ecb36b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-beta.5_1627990914224_0.2490366619794364","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4d763c1a75dd30e7636dd68ee2195b225506e562","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0.tgz","fileCount":965,"integrity":"sha512-ojjpA9qCNiCVKE69HtCmuLpstD9NTqA6o18+xV59dv+fkbp3SWSBuU8uZuOY7as5egTdUrp109XnqfCWaKoS+A==","signatures":[{"sig":"MEUCIHdNKhIVmIZN2OhEaXHGqPJswH2nVNYRl0AHXkUr5W1CAiEAlbKtbdIC4ypoon1dmLXynYI6z5jlcDrRqALz/FiuEo0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCTdfCRA9TVsSAnZWagAAws8P/AiqiDGCMnZ8vVvWNnlx\nZb5kQdt+zBcVs4SHKWA0zCs2ed+wZMq1esbKW7nbaeY5T4NcZV/gAMEBHw5u\nIKOMjvyL4qnT16SkehGYJsvPIpp7h6zZR0OnoMX6m/NG4CiSA57QKiaZXBbY\ngIut4TbZ1LHa73QrX/dz3gN3lOnWoHEFRw2lEUlG3+NJIEw36XM+5IE2MuIS\nkGF76JEKpAzFoKZ7GMLfmqQO+WiJRT3Sloc8uGnzr2yRApsaOyIjwxAmJ+xv\n/4iGdO+VCWq5GRx/iqst8rvJvkI+ikiMGb0F3JFKq0wRRK9A+4LL15hKk9Z/\nhXrrqlECbOa8+i+I/ZC88hWDKwMUJfJ7oPCEuQGzyKThZc15PXBMLC0pr+s5\nXv3J53crg3ej+aAu0R+7my6ZCojfssRFpDfFbsBo9vrqMNtYMWxOO2eFb3Od\nRIYCt/ssdiQoJ3FhwGG3/h5TYmSO3Fsj984dAGFoJNbJUZZmhtGKKiCTK+qe\nfj8mEL4wqKIbbxOjUayafPAz91U2qfRFtTffMYfSJHwZEH+CfnINr/7Vo5t5\n0SoiK8MnZIqeXQKYwXd54dYXTDchjgQstXX4e6twr8g4Q2/2grjg2vubEHma\n9BW8No1SptFPip0GkAqcMKdf+l76FJkN6a/1I6jw4HlCMIQ8qxvTcm4/Nr0P\nmeE3\r\n=HKmJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"74af77e2125df0483596102911c80755eeb4bedd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0_1627993950939_0.6678668130781991","host":"s3://npm-registry-packages"}},"2.0.0-feature-822a89-krw1mv2i":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-feature-822a89-krw1mv2i","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-feature-822a89-krw1mv2i","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eda9ef732b1a4307721394ff631b3faba0222b2d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-feature-822a89-krw1mv2i.tgz","fileCount":975,"integrity":"sha512-JFKQr96zBjWX5i8rfziwh20BtDDdCs6uT2pRW9TmV9TI1Dla0wiCv8fIcs1iquGbDpO6V5cN83ZOFsmg4Gc7Nw==","signatures":[{"sig":"MEQCIDDb2WRamBsymlFXoz2M03EB797yi/TeLlFxmrkvOl/PAiBDhK1Ji7tTMpzvsfUAf/4Cj4cg1yBYpgf3wEMXJvoSuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCTgtCRA9TVsSAnZWagAAhhwP/0ggxLcj6A6gdJtevJfm\npy9l2fSRUuQW2EtOJBr7TjH+Yo5ntHbXPsedABhHNcD3++Tu3f/BpGUbh3qV\nY86+PNCqB0sTSF6vvugXsgYlrgvAFk7gBHmPV8+SWvA/aEYCrgjPi2leRO3e\n20YgeoeBwE1IlXowSvXEpSM/S3gNL8vG359fysVlEnuFXoLImODHHPUD8Mqv\nLUJ+DEDkdltCkfChfourSUtoQwpSsrtGdYfrqg/nWxQDmHvgRnZXPB2o1IuD\nZ55d5/n3+9mq4a7xo9O+weSrn+KPA1h+q6ulJWKa/3mXYVltmG97sLMAivRH\nfHIp9VJ/Gv0iMZ3DiukhtWnCLfzUUKteyKRJ3RnWbGIJL7W69bkI0ClXxvN+\n4iIAH6kKchs4jwmiVj8pHJi+RMS2PomibECKrGzfgD5aNg4dLvypQwwp89Tq\n665B+e7siIELDfsDQYg/N18domWBOYZs7spPYpvaXZ8EJF4eMwWsyHOYjTff\nyhVM7eBCyQ5BI481rx7kcKOW/HYkDt44M0MdkFgeeNfhG9r4sLISGnZSbsG6\n6Afsdvz0ZmTStoKa3cwN/grYZw2giOnfmDXi0kksR+xwGIFXkuEC5QaYDXaO\ngUt9O3I4getRGcqpYwjWxK+//WQql2nETarui/X6tMqRVgKO8bkINnPMlI5S\n91Pd\r\n=LiJS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"822a896b14a616a29a8a5e7c73b0aa30f55cb97c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.13","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-feature-822a89-krw1mv2i_1627994157629_0.597072683436908","host":"s3://npm-registry-packages"}},"2.0.0-hotfix-b5d760-krxh4rn8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.0-hotfix-b5d760-krxh4rn8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.0-hotfix-b5d760-krxh4rn8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c5246af21191c0d1e927610ac495da688fbabe2b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.0-hotfix-b5d760-krxh4rn8.tgz","fileCount":965,"integrity":"sha512-ZsTthtfvRRzLjV5beyD2BdhDcZMPmNs+cX2SvxoDev4WEY7YfQmDQl7NQAaqxq9NWh58/4Qt29bfu1SzjFCZxw==","signatures":[{"sig":"MEQCIArFQ/VgUMIF6LVWwngvffIp6Z38NNpJce2bsgRv7XgJAiB+PNA8Pj9tFDZc6mPJyM/J/4JPhA/FuvdiPdCGjvVE+Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCooACRA9TVsSAnZWagAAfjkQAJ05U2ehZz2mVDF59IZ2\nPQNAyraDjrpjmrCu/nDvgpIDjsym3rlhRfS8GfBL2Oid4Qrts6b0NDNZU42l\nPGnR8+hmGQ37oz4fg+XnVBk+QP8I1t1BrAUPqne7k6vuaziNchElfqqstrUK\nkzA9AaC5SK1/L+SDNH78ld/2SyticvAUglc42gWsoHxLuHHq4+6Cog+GF+DF\nkmNYAd0/zO+SXfJ+KDqQTInEsROQsKHO9nf8Hw9wGeLW2MOYG/pjcz3CWdtx\nEPaCtKKWSpfaAC53OjSi7+wwAfKrmh7AvyeluAgfclxzcWs7U5d8e4Aw7gQM\nEWwWzpeGoImwHe6sDRMvBbobU+KtK8WT5eevZIdzUgL5luCtDOHw9gSSZvXJ\nT0QETErCYlRjeL5IgzmBJM3gEdeLnsqLpUXfBP/67KC6OrpG9CCDXj3OwMoP\nlWbuYxg1WIKy9+hLgNBzRECrA/smS2jAbsC8Zt1kPK0pMaeSal63jA4jPDJ1\nTZGsaorzf7NpTVcdeWD4KRY1vL518OvGTo7Q1DgO8fFDLEAzd9K15qo2wf6B\nazYNuI0uA/SAZNJimy0CMjZbbjE+mzntOu+itYFSQNxmhCL6hSVwrRMg7KNY\nPNEA1Sm9cH0m0cMpHKI7KdTk8H3JEaa0nD6XMiLpVs84LH47oTZzKWOPshPi\n2Rnu\r\n=aSQw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b5d760ede281ad558b9af5cbe9718d00d6e5d8d6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.0-hotfix-b5d760-krxh4rn8_1628080640094_0.8466290606497464","host":"s3://npm-registry-packages"}},"2.0.1-hotfix-9bab30-krxh5vmx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-hotfix-9bab30-krxh5vmx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-hotfix-9bab30-krxh5vmx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4adb7e856bdeb038fe4042d2a9d3f2d772000a82","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-hotfix-9bab30-krxh5vmx.tgz","fileCount":965,"integrity":"sha512-yLUoxB6/+AZT/ZMsEJvoEmeEoTVjADzKQxcNwaCoJzf79Xd8lXN7kDfZY6b72nZguD1m8f27kxhdXYmGrAoGGw==","signatures":[{"sig":"MEQCIDy9OBecfASxFuvj99KqNAylvjOp+DurHpdkQ++B2TB+AiAHBk3aRGro987p3h19EcXgGcQfJZ3Zig0RUfUnCN07dQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCoo3CRA9TVsSAnZWagAAtl4P/0balqXliBEYw1e5KhTH\n+fGI5e41JE96cRcRAbeZzXS0fayBn1w5XmZ693x4o6y+y0BkdGeOG7IxDpuA\nyC1VC3snSfEpKD8h5hj++6Q16MW8o7rPQtGpM3Qap27azu6Cwzc79VSjIzVY\nTyESlos3KD7ASxRXB33kn+gL913KtDmJxUcsQU4jKloAsJUJ8ZOOx8mqanUD\njB1a/lgw7ZI6PoZ04+CgCddX58ZM+v0yFcSDQ12WZ7rqMqAhXGjyTxwmFE14\nPhmMbZXNp9Wk9TssM9gPLVFFPeMwYjfUCjvB1Apbssklc3kglt7CQlpN810/\ngEHgs2zJ7jI59+IY9qLPFy/NMq4f8anaF69UnCyAlrw46J99CvuIVFxpmK9z\nOqjf1GryQyqJZL5n+L3bzXSpZ/eYB5tTfw1ekcLgFjYjmuSi2mOsP/Yrr26Q\nyepYMBcByqYFawy0aGT52rv4xRkIiotDJmh7hsEsY7JHyuLHxrwx/c5+SYMg\nNnhyTnmDkWDvTXsPamG/8ylHfjOHrDuoPWzrPXE4KGWKZc+EtJNeTf0HOO/E\ndl+Z+/Y2Ywld5ZqW2tHtJXzIlZ9sbSoDo49JO15TuXAM3T+jJtP+VYHdw/Ra\nPPcIQSwnbXn5Ja8LhjiEUwCgfsXPMNypxQWr9oqbU8Q2FLBowJ5S4WWpE/76\nunLJ\r\n=Srnk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9bab30bb19854b1edb6db21f74e890a38d25e650","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-hotfix-9bab30-krxh5vmx_1628080695632_0.8997581714587224","host":"s3://npm-registry-packages"}},"2.0.1-hotfix-438a15-krxht32y":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-hotfix-438a15-krxht32y","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-hotfix-438a15-krxht32y","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7e0ee0d4f79a6897fc978f5d917679c05f0e8170","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-hotfix-438a15-krxht32y.tgz","fileCount":965,"integrity":"sha512-gIpgVO9Jafv9Mcogt4NFUZh2DkrlaKE6JLpt4SJLzp59EJgS4zqu5uGWXPjc+1jPML9XkOlGeknmX+8MWadqpA==","signatures":[{"sig":"MEQCIEaUYjELEkt1WKgNwqQb7MDH2a3zCQzRY0/Xbsf3xhw+AiAAiDXNZxLTk1NX9aODy8b20+nz0pW/GNadoVu3ltXvOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCo6ACRA9TVsSAnZWagAAlVEP/Aq3h1su9VxkBTR/eBG1\nxI1Jf1n2dc6yh7Qfeiba7TXEBXT52GJu1HORnAxGFrQj3jkDQ7myA+0mcUZs\n/+MrLRncaYQDNCROPnpcfOLt/HKUqAkh9HIfuGVTEYptSCCgNSYEWRb9j86W\n9zVoJsDKw3rBjEGe5lG5i/TzaWbG+Cv/mPDIhPsBWC0MgiPUYshvPXMCExM6\nR/kHf80v/+HlH1qh2HYhabzEyvOPMm/Zei7DgUhEspeR1MW2mu3UaB0Ll2j4\nEXojy3ff2tCKu20aH9LvMfA9s9TLhC8jZLIYw/Sa1g3F3f3isJw1yJ1T0tjH\nngqJek1I17fcNokKHl/bPrclbHFJqwPF0izo5mNKWAR0loynZj0DOmh5s2rg\nzv5r1T0HivnT+OA64P0MTL+XOPadY6eHnLI54I/d62kuccjmw1NOmMWpQNeb\nHUotXSuEk/YBYWsm+ezbsiCIdK9NJ5wXDj8epbHECQain1pojxKChxd+Tl6E\n7VaJ44jAVrd4lT5XM9qKzebOQuEBLhez3DUFwCnWh041rzmZiPANQ0DWdd47\nrgAgdbC50MQlVHoXaJgoLuUWpc1JrSuBRbHHNk8irxndytA/gl8c7ktmeekF\nZb/fUkNNDMzb2ZecL3N3duW7mnmjTH38BkJa9m9d43GOLeEu2hjEDE0PbqtV\nPhE8\r\n=e2Mq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"438a15eb7f318391e4e1f23128ded3f96e5dac46","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-hotfix-438a15-krxht32y_1628081791894_0.6687244214320176","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"94936d931932ad0993145228f8b644fd7be33e1b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1.tgz","fileCount":965,"integrity":"sha512-86LjuUiRV1rSaeQV4wSK9Q5bW2iraJ8Cdl5HrXvG3VtHSLD+EPl75D299cW6XQIdBGkWXg5XEPgdfLgwats+1w==","signatures":[{"sig":"MEUCIQD09JYXN2stovyxnVX02GWXZ2BrQ97o/KT4Fd2cJ9AsQQIgEfL13720kaFmPmjoSo7JGJKd4XEsh5zrLVxpSiQRhoU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCpu2CRA9TVsSAnZWagAAeWgP/070sFKdpi3J5LjsDSW3\n3PJZgYe5kd/Mjgdr+NYTo2w+3U/AWw7nqoTEsSuW0WW3Nl8yDhg+hdVHnJLs\nunxBWq9cpB4ShZB7kPdeqdW5FtcjocORW61WdyAs0Hy5pT0oGDWK2kTy8UH4\n3d/5B3ryOsWZZhVtv5zMrvVGFFkH/9CnTba/99Ke5T6kM1jJEtxgVEObswpr\njfyPfPCJppZmk97+fOVeH04qFRQcGFg3GbNkXfZlvgwTamsUHtr7PUdRz+qs\nGB8cPqmby5IME3zDPv2V1Z6MYVuxKsY7/F4/S+kgd60jmZ/YOdSAc16+d91E\nqzpSNTayN6OGxnPRcYWuk9pltPG3qBCtqrFyDQAfXK0VKrMFhG4D6rZjtcPn\nmTOgnuYS2o5L8GIRQPhUR6Occi8j9uY8eU5jl54M8TGtnLDviuIF7WypVajn\nYC1CH3BCPxrtg//UyFqJooy7YwJEqRXZCwcOXjv7kHQCNNr3GKLuw/EdaMSr\n1x39lYqykJx9QpkQ8SN2OoZNU4CsKtkp1ysRPeGaNBnwPHJQiLTw0/sb1wi4\nVDkBhbr+9mXa3al88Nd12r5LMa0eeqgLQDMDIYsnryirFnYFlPLoLPtQ4S5I\nd0a0u5mrmg0fUKGdE6UgerQur6GuWf/Cy44C+PsUCyOIDPihcwv6rDHFmAOZ\nkgG3\r\n=AHUN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"644b14100991b62b1afbc901322a230f0bcc0e3b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1_1628085174265_0.1271520322387676","host":"s3://npm-registry-packages"}},"2.0.1-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e3abcaf93a660c8ec7800be85eb74b6306742f21","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-alpha.1.tgz","fileCount":965,"integrity":"sha512-I14DlAZDyJqzFMHN4Hi6BcxICiaAaIFvFxMx//Sff/fq83MwjT7SGx1A4vpbcnsMAPtTABTK+kuV7CUQ5QUdhA==","signatures":[{"sig":"MEYCIQDWegI32syplQmM19BB7l66nk/5WBtaXLA/gZ/jphF4QQIhALinO9B5h1J+cfu4wFWyQ4NxRmcBN7R6/6QnsNc2VtI2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1621869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCpzPCRA9TVsSAnZWagAANEYP+QBDwNwRyQtw/qCjV4HH\nIQ67X+3dEVw94Q+NTT/2AFx+JfqWbYB/kTmcn0rEkshsfLG67rAygTJs2L7U\nmJjl8cGyfvUii2U3ls3QUFx3IEJ5e/dfyxvBAy/2S+nPZJ+/QszzChrRsLh6\nqZ7WjUI3t2opoaxgo60QRTgSGYNVg9JIFceULWebmRd8noQmW7m5Dt+YHKGA\nMO/ysZYeEK8RY9lOd488Y1YwuAYgRXOXND0zgDXHuisnrQo2Kivy0Zcpnsyv\nBywD6BdhhaJ6b8Q1Xqt/drcip862GrbPyvjEqJV6Nng4pO2LpJbGRKYIlbB9\nbZJrn1xWhBm7KtJ1XrLmHgvHyiScH+hG7YQh4qbJ86GROBWxpS806sNMubEX\nsjv3pOvv0TyJRGc9TnlZnySmu/tTFK8gMmdzxOHKDX0P1u0kWKebc3q8EJrd\nldpJCdvYfZD8Bov3227f90xZ02bDSFzcWiKX4BWImu4RE965btjyfag8jqCk\nLVSeiuEg9MY45m4MteQe11eJd1VnxEpXLR4GDIPc+VPfZW2MSaLtO6tjs1Ah\n4t83nhkSE563ltz29aRNS0LA3se/MrziGTGizShMLutbLg6VJJTC4gsOu6fe\n079O8M6kApUMiyVea1wS0kr7Xx+jhRG6c5vJEMbbPxW3LqCfM3WbyH//JT05\nKo9B\r\n=WTc6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7d9c36ca00d06b626d27c5fd4de0f2ae9a483d45","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-alpha.1_1628085455155_0.8666015744611952","host":"s3://npm-registry-packages"}},"2.0.1-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ac9639998a14a377bb560449fa2bd87dbf69ee9a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-beta.1.tgz","fileCount":965,"integrity":"sha512-fXi6NwcZLorVGKRIKwD1H9ZwO9uAGIkuHyiVwc0cIQKAId4G6DdvkH0eTq8GUi9oSi6kD1vS0Q2iKSIP924tqA==","signatures":[{"sig":"MEQCIFcBon2+R+MssPanbjTviGCX3TGh9/xxr6DVd9r+qTuJAiBnrm0thPUkbL8EW03NO0ZJHpyJd987TsmpeE4f8FzrnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1621868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCpzTCRA9TVsSAnZWagAAznMP/1vf8GQwhGFxo89laXC5\nbEk+bfcKW8ZX6ecIjhzmmdeLFwp7OFMGPfF79JDX1BMaTC9ulHWS+mVupmPI\nFtjQbO7szPZ4pVBXF39yjtlSskBuwO7wTjNtJS2aHASamqWcQl0pF3dOe4xk\ndGstEuwmyXsMMmiTqYT7cll0bk682il0C8zB9pg0cdVF6zJiO2gRacg+OJhW\nKxTWhACuwVbhttGhQ5z49NI6+Agz0kGJjSOvCyb2YCm+pzB967s+tMwYqNWK\n9JXATTZZRXiZrb4o5xKAkNDkrpzB9ysktj5RrwoQiTr/rc8O9q58gTCdlLjD\nFMxInwZ9KDzZtJvVfCzZNcEmz8OVPnhPvDeVYEj0hDi4DBNaNNWKPJJzHz14\nqmGzyiV0eXKUh20HSMxLofR9ApR6S0TsyKhu6cJZrBEmWPjBbrRLQ0Z5EgpH\n8+3zVAGVa5C6vP5SwmxRsy4qfG7bi1AGaIKDgrzfYW4ktAq/Zmk8JuKXfv+M\naO+H88HR/rkEvvF2o7RaJ3B0+q0ICW2i1HWe6kNoPAe0TMgaocqS077x94Tl\nHQU2U8eij/iZf2rXzZTEYn1h3in4O/wR4XJY0LOpYsOkefJ9Jjq2XN+JDImd\n7oG/zIpO3NOkPrY749B32MVrJuHt7kI9DkDNISjVgY5ssHS//ziOy0NVkW8n\na0M3\r\n=SfKL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3b9dc87a48a56560e6b8eb6d87cd58b96249a75e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-beta.1_1628085459302_0.007015997532708429","host":"s3://npm-registry-packages"}},"2.0.1-feature-0b2c83-krxk3rvk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-feature-0b2c83-krxk3rvk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-feature-0b2c83-krxk3rvk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5954c0a42de70d4ebb3824693b1cce7d216f785c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-feature-0b2c83-krxk3rvk.tgz","fileCount":975,"integrity":"sha512-3vOXVxZVQohQELxXIP3Lkqgt7FjMrMRTt369DXreuF/MoPzUvk00vu626N7hbGqiz+je5iAYvLFsNfrp776VvQ==","signatures":[{"sig":"MEYCIQC2cMSu0eRnO01dEvHEQSDDQYJQ2e36s+pLIOfj1XsApQIhAOtl4zzEcSBpKswaeakDzmUDkcnZDV7GkktyohcD2Tlo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCp2NCRA9TVsSAnZWagAAzHsP/3iBTV6EPD///TJsmcKj\nS4CoX1pq65qge6edHbiR356d+R755Y8qKM2sotMgydmbk5Zn6GFtSouJqWp7\nyWHxf067JYNjMBruNIDK5syWchZsRI0rU338G/pMWsC3tI0X9q8754Wv1WWn\nR9DTMTFhI0/+Lkkkuq/3pt8q5rOD7NhDJVtwoln5Yb4LKieCDJfMMdmm/ESD\nxwWmPbQak+tFAQVYkEUltIGEjtAsghsiyoDt9Hc6xPZEx9ljLUHnA23myzHG\nri9E2V24kgodg7bk5RcqSdaDH9dqyx23TUdxiGEx/Qp54WVkbJiyAsPh6aOx\n+XR3Z/MAbr83Ay9n50gg7T2XDmIcFTZGAj5EDYG4qn3Azn9JrHrYoMeuOjUY\npmG+Y86n59Ej6Wle6QB8+Ffr82xkSJ1KDr7GwcK5MTt+ogJn4Ljz2j+WNuDz\nzJDwmo33grM6NWNv/ke5bOUkpT1cz1rZ7qsE483kUIo9imjqpkn2ueSQyfuD\nwOjGLEQAO06Faqe5sUohwD/q5jhX1Wy3gd4O6BnZo+79IXlNjVMu/orj4Z8F\nmwuCTOWPS7xPUd3xvOe8K3ETYkaDVzqfIZbC+NVUeffzei15S5leeN/fyo23\n5mBsFQSW0ZsKMNhQrX+89IkUAcYSRQM+YHSAglNg7Bu/PaX12z9a8Oo77wkt\nX5jv\r\n=Zrjl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0b2c834cd3ae3516b602873e42e6f42df44e9a7a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-feature-0b2c83-krxk3rvk_1628085645075_0.7355431891694046","host":"s3://npm-registry-packages"}},"2.0.1-feature-cdbb0b-krz19rgr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-feature-cdbb0b-krz19rgr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-feature-cdbb0b-krz19rgr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1f68a1f82031fe333a9720be75a668bc1682b824","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-feature-cdbb0b-krz19rgr.tgz","fileCount":966,"integrity":"sha512-xR1UZhrmQwHWsmYTPhtedHnivkMUft8WLU9Sr62i9NTbe+CKDUrEZNR56MxnePQ7DoeKue9hlykBEmz6IXVOVw==","signatures":[{"sig":"MEQCICSL0uMmoFBQGlz/3Q421QNjF0lPt0TRmk3APsKERF3VAiAwLaZmleMKzcLXNJoPcJ6fcgdTeEAyIBDgEyF1moujpw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhC/pTCRA9TVsSAnZWagAAgD8P/Ro0D42QwP0akEc85u0q\nlBaDXuRbcngIxhR+27j30cxbTAZG1vBEvArdGokRgiZWbQqTT4PDpZqnflXV\nXES0XWz/xOMIod2QJ07+qhfjGKRM85+5H/KAxt9l8cMWkFB1ygLgEKoJWsS9\nE5UbOlhygYPVyyoz7+zfXdLGl7Rx8m7XOeURZ29ceez7MSlhE6dX7Fg1UyUg\np/lWULfZuaLMR1KlywMQ1kerzKu0atsa9UTxfVZKVoO7Ki7pz8js9Ws/4QXo\nFwKUlafun39oEYnt1T1n+uaOx5M47CHGf4JXcjwW9DfC5tOVI3KwacwMeuIL\nC6nRVAFiT/BaNGJTyaV3bILY37gtxqLGlwri9/0AFbpi3yHA8NCnb8JcOcE/\ndEFsfMyGxZ3c8xCfQB3Brd5WF4WiH9+5as3YCfP72/7XPR5094WAWlzsa4wx\nMdn5B0QtYT6YzVEjxn3lI8eYyDPoUX8pgPOgbTS4PO3dJnK+nG11xGdyVH2d\ntqezBgTCl7mWaOzUDRogOS5ccOJKq/bCwkifirdD8Q+bng50W89IR5Scb4r5\n4rdfZuMxVw+WUhintOqozThPjoPZv20oZJ+iYbUOWioIFs7IJRqdJZbwLdEM\nPmgxuZ+sG7OQG3AyYC0iJAeuDZscVHCyUMZQuzI58OFPkQHru57p3nX8aFZD\nr80N\r\n=8sWi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cdbb0b92ee61307f0e21595bf0ba2cf3a3e77db0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-feature-cdbb0b-krz19rgr_1628174930863_0.4726479908483443","host":"s3://npm-registry-packages"}},"2.0.1-feature-6a8c5d-krz1ouhi":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-feature-6a8c5d-krz1ouhi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-feature-6a8c5d-krz1ouhi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"96c5c44e3c3c0afe3f40e983015f9165411e1b3c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-feature-6a8c5d-krz1ouhi.tgz","fileCount":965,"integrity":"sha512-pml5ka5EDkLOORMpW4z3aoQFZ8bo11JYW9pEugO7vhGLkWQ/TkxbBAIf96DXtCQP4lET1thH04ye4FJZUzvwGA==","signatures":[{"sig":"MEYCIQCEiT3gZ+lwnuA4pOYaSmlPOjIHRg3RFPjiaC/EaHwwuAIhANq9qD+jMtwiuaLIopFwX1awLiLulDcnWtX8PwzL6N3S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1621943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhC/0jCRA9TVsSAnZWagAAoYgP/14BqE7iQrjl+E/cd5jA\nRr5LsupehwFKgp7PaZ0MBlp87jpN8OEcBRnZJHhZgaH3BA9Z9rcjOk3IpPpt\nCWh59g28oLzCAG8TsekYjgky2l//t4BB/VXzhWiKifsJy84faAFSGTfBJbhu\nAPUnsahDJWNp1vYhnXW/RIvn84pT/xnbdLq16w6IkKUGAFfi/3fa47EBCjGG\nDep2SpDxUX+/XO79gzxKNHNvEBIxwhO7NcC8czTZuFG+130ozEt2C2Df7TIL\ni7tnk4XlCBbmniEf0ZedEgOK5HxcGRNpWogxAsCJXaanFhgBTbE03UoGD9mr\ne7RGrbwjGxnk8sBrO2777ZG36e2Ns6md++99OHEo4SD3Ibmb0JWoE7p4m4bb\n7NrDbEQ+IwTkScCXTo81Om9OaDMTf2kBQqmCHV4ON1NCAaT5WmLDGB4XC8lw\nlvopT08tbKpRD7x564rftaL3sQjm9Xv29hVLKkH3TLnIsEFIkgz4PTC69DkV\nRn2lj/CgfFeXW4yjIvVt1MFjaMdUqjsEF7+v/EWgnWteW2eEFd7+3rSXIq3O\n7Z5ho31noJW4cz8St/BqVjhm0X8w4/P9RbcNWkPJHoyTJPga1cO0glSKeAli\nn9/NmNI0bO4FXv1YcYqnBpFeWyVE/x41KwiE6Ng1Njlf4genXRux/HboAE56\nuPs4\r\n=1SBx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6a8c5dcb69860086d7f1bbaf930a5e201b3d7ff1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-feature-6a8c5d-krz1ouhi_1628175650875_0.33197970273204747","host":"s3://npm-registry-packages"}},"2.0.1-hotfix-29c69b-ks4higor":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.1-hotfix-29c69b-ks4higor","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.1-hotfix-29c69b-ks4higor","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"950a1aea1f1a172ce3972005fcc9a913f3b1acce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.1-hotfix-29c69b-ks4higor.tgz","fileCount":965,"integrity":"sha512-wC+oqlxaP0hzI0u/VqsOpWOJZXUfJAE0D6RtrCHzdDFRT7Aejc52BLqmUTS17f+rfiitHjYFX0KZM36qZox8zQ==","signatures":[{"sig":"MEQCICpczUZfKtQrKTSDlBoJE9uvSSue8zt42tp56kjqNNDgAiAL23Pzmog+tkYrUj8LdZULu1jXAeIHvAFn84r48ad86g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEQHlCRA9TVsSAnZWagAATgwQAKT/FMQmG6lnJGcG7dDD\nDrPsFH5oKtfU7UnSq0hMYQkrs0p/JuzeOtUgZCXn2OUqE5KnUgzxmL/T++4p\n+Gyi81ULGKPNW7OGOxQZvmC7u5az0oIul+f9ZTFEY7LTzcuN/GsCbdLBaARQ\niNIREcKBKahS3EaBXBdNgQtO/PMsIV2JIXrJKEzuKl4M3ikHm4ZA+VaTpSB1\nvI8cRMBjTymkOHlnnziKNN1ELPVatwa6azId4nSG6U/QiA2XlfikCxWzzgNa\n0v8eUdVUqqnVlpEtOwxgLSUXiJ79DFWylGsKX2qqSSUKC7AMCJ2naCKZE933\n7NSbnZc6ESUx/Di9O/e4d6AtKUpLOfRNMXa8FrwA5wmFEopek62MQxB+b6MM\nEHvwdOW63Fs8okigQ7S3I/lJVgaFE3vJo/xGk/BdrP2Z4v01TfUaOyrW1Gfb\nkiLZbK00+kXoQ5pNNcKRmnD7Ib0O9vBeZH68zR7SLqLv4AV7rEV1yQ9tA6te\naZoax/m+9gCEGCFvxnE/Ve5dWoqjm4dVDOlD6G0+Z0M1/0aU3OzhI6OCVtLj\nmF1ACO39x+tQ4eip9wtFXsfOA5FiFuzHt8fzXAFtSclxslU6TIX3528tWEVp\nW73n8DI1L7I9l4LdvCjkCn5GAjWwORm84Dy16MaI2NA9pLroBHx4USW64kdC\nquWD\r\n=J+jc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"29c69b1acebbf51cb72c27789021adb7117987f0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.1-hotfix-29c69b-ks4higor_1628504549058_0.9831269849973987","host":"s3://npm-registry-packages"}},"2.0.2-hotfix-6c1466-ks4msry0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-hotfix-6c1466-ks4msry0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-hotfix-6c1466-ks4msry0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5e50f5fe914c1e9181a6a5fb13c5018f0df95da6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-hotfix-6c1466-ks4msry0.tgz","fileCount":965,"integrity":"sha512-RzZkTUhtlDs5oX4QPfSK3gUCRSwgmqBWg0dbdlCV7/cTmTCgpDLG4lygGgmdBJBcGDb6OaFio3yqB+R7lmLzfw==","signatures":[{"sig":"MEUCIHPWuAs/LOPi5aFergaxTg7VNK/xOmL8fJklaisOQw5NAiEAmUkWGIZY8JWd0s3TqfpLu4zN6gTwfaGwj51dwGufmRE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhESSOCRA9TVsSAnZWagAAfd8P/A6df53kqNPaeYkNkzKI\nmPhS6km28Dej6rySDpO3tDRTG8rQCpNGq0xSRQl+TMU40iUuArwSQqPgM7uv\nDUFjZ44ceGMuEKTTV010aPa8PKb2sWD6bZjprLT2DOV7NPP09DF5mbijay4Q\nhS4w09WoLMOO9kDQPIdjY2pkrxIHUTHcsq0ZylQQT9OxMrr00cgEeXiRc2rc\nq+sdUpqdDimHv+gZTpQu5gbqGRaj3AGNXJxDlMd4OTdX1jF18g7+eZ8ggDhx\nZu12oBMYg3AkvJg61tK8DSyhWk0C53tvvnPL/z9ihvaGUeV2RwNlyW4GGk2x\nDhpgjm9HdtLDNwoO/yLjJZoZQt7auG+liRkswKOmyXxurmaEYPpo2oInIm4v\n6oygDB9yFhbAcC0tKVDDvdPu7+NYFRziJRRwKe1dVUxUeB9jxovxl0crD4Sg\ni95FLfiJ1rvSjYTq8SINRjrrYlR8sJQf5YxCdih2jJB8QHf9yFHeYLSAiAyr\nHG41JSdWdLnZ9IWznDJy1fc0h+mfVgpxgtfLiA3PrlIZFkMlp5wG+jqIwP+l\nmHCkXgmN1A1QCbIiWjz83OWnVtWdLBipgOj7vXrVZwJf71GWsJhdDkh7j+0O\nKjCsZ5IuKiNV0pzXgtySvjxLQRrp59D1J11yAskhZICrDFKOwQ9LhZn/WFq9\nfnRI\r\n=ZXm9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6c146600d23759aeaa8160e5c585621f89b17610","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-hotfix-6c1466-ks4msry0_1628513422695_0.1307031442341171","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"57ab839116dd343e562e190eb807c3f32b264831","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2.tgz","fileCount":965,"integrity":"sha512-u6C86ux+tAJgzzqU8ZtEts+ZabpdKd2NHbVV+excPeiblZ1wJvRXVgvyh0tfmOZwqwdgl/dKQsV1LNyZbbADTw==","signatures":[{"sig":"MEUCIQDXty0q2h3LBNFCrTr0gPdet0oIzqSHLj4spnKjOhzlCAIgeCQrTmFfKB5wCNgLdOguOFnnk6G/xli1Fm8VY1DquQ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhESTJCRA9TVsSAnZWagAA+YoP/jww3yqrU5i9fM8PnqHC\np1ZkN/i6JVrC52p2kzCCPRDaLbwkmOI5Cs8tZdp4RsUtDRKgfwUPDeV65jdO\nioa7nPgPK5E7xBlCkB3v1sIztKIkdP75HLdNfWORXAQ21zvRWhsQtfWLrQ2B\nFUTLp+ynlQzgQIfYsC/r5pNxpmLrLxzYCJPIQ8BgfFpVwGQH4ZEPskmGa30f\n1CS0N5Aw9MpVrGSLDwU94HtK8yFY4pgxZotXCfmurHLwEgrRn3kkGi+Y6NEn\nZdqtO07+5b76ZWtWCTMVBI3JDN+t2Qq9fmTbm1anxCHtR64Y3pAAGyheiR20\nXsppbtLG/kE4KxmmXUAZXAZs5vx7Q6fEw9sExuf4FthMKTF5ktVNlYZ208/M\nhxa5HIQfLsi1tcIVbUL/mKgePdSD5mfQkMxNwKjbGiQiLE6N1tVTc8ksbGgt\nzXNPXm66CuNQvPQg2CHQ6TwPBRLgcLKnuA3AO/a+5ZrR+vTx7ZP9b7/ypHJi\nQTh2yLMcj9aLoj6ev3QSNOrlZQ0ropI7h5YVFDzho7ppC75oWGQalF9aF+0B\ngbgkGaqPu1PP16sXFXg9ldwwwZgX5HV9VjVJtmAZ2pYnHjpSErbCEAjcmNB3\nlc36sZrJNAQie71FE9asH2GiVZtINSJVSy3AtWULC62CEgCnap0AHyBlxBMS\nsoEv\r\n=O7yy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"83d04ca2886885865606f2c7ab0e6a36f0b67d80","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2_1628513481299_0.8395162312691418","host":"s3://npm-registry-packages"}},"2.0.2-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"27f3d2679da255a28a92511a0fa3a8069b993ac0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-beta.1.tgz","fileCount":965,"integrity":"sha512-S/sAatEy7qHTfwAfhoTLetxKWYYJQGb55cUYFNVWc4AIq1uVKXk+Y8Q+7wjzm1D2EyJvUR5Eee37CsDOvji0xA==","signatures":[{"sig":"MEUCIQC0lMk/OE/txM8rM3Ut/sjU1Ji+kdrUtnCDOsNVBZyDNgIgHmEVaUc3Paw06uuhE0BI8nagYKIGPVvuvmr8DdMMbCs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhESUdCRA9TVsSAnZWagAAsSMP/1GbQfC7/DpgHM+flGw2\nfMEcUCjib70IGYe8l9k7+8fMJiiTEISBNLld9UFCTF1ugWaCvhZ6nFeLiXPy\nb3B4IOe93u7V9qBSuZhj6uuyGdySUhEJGzPhCeaALiJQqNvU3JNjk6yn47eM\nPCzMUHpAeeszGerOFB0EOgA9zECBo0Jr1Jb3ozUtxz+Mw5ypUxYMZhC89jti\nYCY6hPEJQIjglpjslw2RgKhAbuSFMm9xJcbxMLkZ+rCLwh5KvHtU4n+3kRgu\nF0BA19RdIjWoHwCrcXU0k16mNa641RGog/iG6L/wcQl2RJYO3rZH9ul0HULE\nPoeXTZvELbb7cxa5NgPx/fdLJXVZqZbO73cgSusOiwTzvpl4JEZ5XHE9cnmz\nkiqY7PkHiYwt3/UXnvafMwoijtq1Hvcmq2rdtZzv34yFMTL0H4ojnbPaUQIE\nlRWeySZJCQlKd4wWKI0tz1TXG/9bOjDso0V87IXWqmHRG7WYtKEyzrrcEc+2\nZGi2rXBGKvcO+OC7qWlVMSyEdCfCAIQcZ7Noz2T6KOozKSeLDjJbbJxHAYjO\nlx8BAPtkK+ne5eraQymNur6XBgSEgCIVgGU6eFKX8iVGEv4nXRLs5c+cGjtx\n1Ym20KihHx82m6qV81abPMA868WQAjqx89U4Sg5jKkKTtuVu6DnkY/l43M2u\nZ0eK\r\n=ceuX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f2033bcc85b45f929dd1d88fd5fb6c5d393c6f29","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-beta.1_1628513564822_0.006130925466497628","host":"s3://npm-registry-packages"}},"2.0.2-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"007053206b427e22b6237afdb93412bf8468daa9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-alpha.1.tgz","fileCount":965,"integrity":"sha512-h9bHY7UHrr0/TXCEyCg2IPQHywD9mqcsewTmwu1OGxWa5ltCR7ik198nxME+LHGQnugmot0WKMLz2uqPAWWc4g==","signatures":[{"sig":"MEYCIQDw1F6Zd86BlOlVlVtcMgNU6ASbhgPQ2OaHrZlviUUr6wIhAMzNUGgSR7AiZfwehr87CgfNujCUKkZbQifpOtYnqUgP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhESVpCRA9TVsSAnZWagAAiDAP/jjq/OomGLSqvjKLneBJ\nDbNBotE1gCxKX4x6Lv49/K8UQSQhe9mN4eFbScHh1itAQpbt4aUn7TiqXuZ5\ntDZMU4hD8KZXeDA6hnM/NQbNdobfd1f3yFnsKDJV8TE7H3IIMF/J3g1ZKZcl\njvF07Yi0FZFsdSHWOZpaNiwcLwI9CmMjOeuMWhH26yaFLNV1BzKYdX3sgI3v\n5ALaESo2srCGbPGlBzTFT17BQprK3yPj2QzIqCMMMtbNGCS2KOQD6pbWxSPH\nb3MqKVI9wH7BlIjLF9dqrD/orUkTENBrBml1K7REvLif65usWzpKtJRGuGtT\nI088zjQX24/b0uwG3Yj8GtfUqYEQK4uyXAs7hcsH6+wo+PKvbhojXSXbf3fg\n5qliitcji6NKlUfVm9N1p/x/mx/zPGo5hA5IUtc6vNpm6CNCCX+Zb4Gi+l/u\ng6DuX8I7KWNcwRVXRZwY9tysGt5AJhlsgBD7snwHcxJI89GuKtIoiVJ5+fjz\nwj5TllaQyZO/U41Zf3XcH546+F7/xEjfEDq4bYR5tOX0QJHzwQHeee8MM9SF\nF8I8dW4SV8jzfH4u2iIRQeBf76/Ra36UmdbL/QRx+CHIdI2oOU/5kccDkFhX\nDpcJIjsdhbQ9wkSZKefJPcTtGzemEWc/gFj+IPtMsOjOhYFWuf1WsSIEV0dh\nlHlm\r\n=7EBo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a57587b2ea5ac0ef84f59bf7eb5935e4c7e5aa66","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-alpha.1_1628513640665_0.4841992645468687","host":"s3://npm-registry-packages"}},"2.0.2-feature-510b56-ks5sb024":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-feature-510b56-ks5sb024","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-feature-510b56-ks5sb024","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"838d1990ba0f6bab92baf5958f0daad0d8379495","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-feature-510b56-ks5sb024.tgz","fileCount":975,"integrity":"sha512-iWI+VxYNfVAVW5wvNx6yZ2nz4gQQ8O+ZGAJUn44Z01MGEalgkxcMXDOUGa/p13Gb6rhBkkJpU13I8U5IUml76w==","signatures":[{"sig":"MEUCIQDGLYriMkZSOHZ2Yii/G/tkGYYuOmGhIbRUFRHLjK+3ZgIgPiHU5eDBGpn9CDSFJZanntcQiwzFVoUoLf+lLuKqDV8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEjTmCRA9TVsSAnZWagAA89YP/i6jiF7S6V5ZAj9EBqtY\n/iCbQOWYSd5w3cr9h2gpdi50oF6VMI7fZUpPL33XDYPea34w7zyzORZt5E6g\n1pn4pH1el04t+tRouZP42gffPLR9H/aegkyy1k10DmiKrentYK/1/G2pK4UG\nFgX1CQn+48NBlXJ1jChc1QIfrV1TWOTCjqbbYVk7acZ2wlTcRj0ipwu0R2Ik\nuqL1RS6a7sNjz59NuZkEOYSObkQyt9hqdffZQaTgpvZVwi3Y4qBQ9OmYENB7\noaE5lgULm+qFVmgG2Us7t6Knzy8m+jHRG6rAHiNxaly+wUwEK5OKIQk7tvFT\nSMF/UYn7HXfH8GBeiUtMJEPBxgKVck3GGbmYhqOf+u3hxgOhJQOYVl+8hDmS\nEyFUQQ33XfUSH9nqlYh5SNOZvUWicLiH0p9ZhGoPudmyk4VhXIG6gap5vTN4\nXOe/8osvNLelTp4tzId6O6yaRHxpjN6fyJUYCEf74mO96W3axVC2JoL9qOSN\nF95D2k5tzHe9yy9EiIj0sM01EnlUMbgEdm14Vhp3apGfpXQAXK/w9VBmRUVA\na/DMbjlVDVW82ywr6EsudSIOeXr8RMRebN/Zre/a7tOp9IElx51iGNmHkRUx\n3mhPolWmFengt4XBM0XIfQ/gwERLH17MRGvfMXS8UMkIq/XKQC2vX//198xZ\n6mWC\r\n=d2P3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"510b5673566fcef9a5a869d7f2deb7c8f37f76d7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-feature-510b56-ks5sb024_1628583142197_0.43898396029247744","host":"s3://npm-registry-packages"}},"2.0.2-feature-2a6a3b-ks5yrq8l":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-feature-2a6a3b-ks5yrq8l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-feature-2a6a3b-ks5yrq8l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bcb78b55b85ce03d87900a4545153e50fa0fb668","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-feature-2a6a3b-ks5yrq8l.tgz","fileCount":965,"integrity":"sha512-aG0u25FOkzYN4Dg5pZS1rG6m915OTkjb7iCGoEJJgM3pFu3aTKEcPlr144EhgakWYreUC6K5ffu3ySfKhQ4SyQ==","signatures":[{"sig":"MEYCIQDBWmscPA+YAslMJxVtsGY1aqpxqyof0xR3Tp1HbqvM1AIhAMyr7y4LqcW7+KUrmjGvM9i9VF5cBhgBWFMiBXMTX4MT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEl9TCRA9TVsSAnZWagAAb9kQAJR6+FTDU2dtdU++3Kaz\n+dS2HH69G0zSTsTSRQTH3y4epLRAG/RWMlrAeDoITS2ELsyjKWb/fPQgh0Fo\n+ZLhPWv5FcYKsJK3N+uzf4Rh/uORL9XHqqmd9LamcV5svd3Vy5l6DGXubnSp\nweooV51CWe+Zv2ZqPQmUYXCRxeBJbfz3UGxxHaZH3zz5EWsYtUnJmW88jVCF\n4YGagzlo0eAIdtSJdmkD4Zim8Rbaoy2HegZaU1eAK+J8BUiX3LIGewNb62n4\n/26/2vqOHDhalK/BVpul6oNXHGWMVKHvb2f4vikl8k6VqKEdN+Nk95nyfzzD\neaGabRbjT0ix++PU0XLA6SJB8pq9OxXxd7u0YOL4V39dCP9L/WY3GrSt11e5\n6AcmZWhPn9/SlpOjtedCXyvNGhBzqbQfPpaYu9VuZLR5tqbxbB6Sl6XREins\nWrwugL1/DwaCQRuoI4SLCvTVIrLIwX5PE82ZQQwfO1eYlLxKmJc6Cxvf02fH\nyV2PFsAYIatmXFGhyrcgjTQ0+GjUnHzQkuYh77L3pa6qMceoo0oyNAr1FA4H\nOAv4czwduuCgjWFJ05lz3OdLtKlrKvE4eNgUbxp1h3H7Q0mar0k7Qrgl7qNS\n9c5ZEquMnEbmRbKgr3TZXWfzp9rTQdznPrBIAIVDgFaLrt3oTHLSdAuy1IuA\nIgzA\r\n=ONlG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2a6a3be5fe7d8558d839a9a7f7a43b15e8dba87a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-feature-2a6a3b-ks5yrq8l_1628594003609_0.768097767148685","host":"s3://npm-registry-packages"}},"2.0.2-feature-a2e491-ksfuo79b":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-feature-a2e491-ksfuo79b","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-feature-a2e491-ksfuo79b","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"18ae3b83f4cf66d22455d1461766e88a538ee0a7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-feature-a2e491-ksfuo79b.tgz","fileCount":965,"integrity":"sha512-g7miPZNvsXQvuUhTo6Kh/WfM/7C+zOG4l3d4vThobMHLHCOUHYfHSdnxbMeD2mj1iubCkLs7NmCRGQ0ZfoHctA==","signatures":[{"sig":"MEUCIQC/NPPP3Ppf3Dr2TmsQ4BXCX42V9ZcRtPw6XxAul7kL0AIgO6TH8CMa2I1Rtic75LeVe3lp1KRA+aMUwRo3p6aX5Ok=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG35aCRA9TVsSAnZWagAAZc0P/2CYqG4FbZuLjVdCFma7\nsXsYpb1abh6uZiWW2SNWMa6ZQpzXhK+bPkCjD/iLIHKzwQnK5NlKX3BRlo+v\n2aseNKEgNwr/IvA4sdjXag6nglyOmxZAWto7UBB4avgmm9KLH+FmkCpfZxv2\nJWCEDe82HP8b2fjBvPtCi1inWk6Nik+ql1W1MhsH/Fa/jT2WhHQuCQiAlK3S\nQKkmosNf2VO7EpDUhwatYWGaeSduT3+I5qnE4mOwhOe3OMW+A7/chRGqGMOp\njp6o96zwiV4vFXkwJ7GPqpp8WbtjScB5L8jFkVbQAEUL0CC2dL7YrZTmAaI+\nR4rJm2ccORLLiGlx+nJkpeq4+I8+EZ0l/zY8w/66LXNv17V3StTrIn8ngC2L\njuQaPfo/diG91g8KXo9kzLEbCrCxAy7BHS0CMPtfokdTKqaiLywOxek1qTeC\nkVbpDNueyZcpjyEHZa3PiwkbObrdH4Y2hDdI0KtYINCoqAqE+8A6jTNgmHcz\nRAPgZdMRYTVd2koBgNqdsdqzOuNNzafi1E2v1UyCqp41EdpJzosSwx+xxMJJ\n8HD+ICthSeRe0URC1VOp3Ak1FD0+QKOEPk+9md/a4jBZ75xj+hnUBGzz83vK\nxtCSxI4x/Pf0Gv7LaH7iD/+L1wacInkx7wh1RwOG1UmHDI2i7yUEC+ACfMmT\nCm/Z\r\n=AInb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a2e49109c48c82dfbc2dc2a8bb41d18c53005e1a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-feature-a2e491-ksfuo79b_1629191770078_0.8216364089563419","host":"s3://npm-registry-packages"}},"2.0.3-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.3-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.3-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2c7cf05c0d645d8dbb1085718841d877f6b149c6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.3-alpha.1.tgz","fileCount":965,"integrity":"sha512-/1lGfzyczNdBB/3W+yw4fMMQGA6HaNTP+AR6y2all5WmiXYF4PlFo2hm8BavISOE8zJFM5DdVzpSxNqJLodi4g==","signatures":[{"sig":"MEYCIQDw3C/+KyVraonH7LfaEbtfWB0Pq3WYToowLSeGSfZp6wIhAKGufZKdGjy5j1sTSWlwffRKsh5S6giWFBVDKqGGL9Ky","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG6keCRA9TVsSAnZWagAA0rgQAII8pP8PKzB2vpM/UKNP\nxAg7UuU3VMx62atGMikYcqpO0aIYglZXeBrztd22hNk1pXVJo+xYsm81Udwm\njaf81bd6M9cJ8SZP2FN4HWdnvoNna07wFzTjPWqkDo55ldUjfly3lPHeSvIc\nGCMAC5kk9Hk4o5RwOWHThGrTo+7xy3b9huqmg5GlyYmKJ7Pqkfz+L61kN1pw\nQBUAMBhMXX95tj58KaAofS0kRNq/waoE5wCreL+kka5Ib28PEImNJ2/qq8mU\njYJXxDDtLfziCZExXthptwvKNs46whieDgYoSDW625GXGH130W/8ZIDTEpmX\noD3LFZE3NXgsvinybsjgIoXJa4RduND7QPA2UJoyX2pf+TYjS1RYpsr2C/pF\nQDfieQNKqa/e1y9fP+eIKcBh7f08Vgr6cYRBAsWiJuUz6hCY+qBPpisvUY5M\nTSsLgFxDvfiA4HAU0N6wbr32jipw4OdAYUEnPV4bRbZqHyUIz9vEcWE83P29\nnl82ghR1N89fxOKYPaWwSVoqDb/QjdVd5vw/KAndiYtH94KmsoZOiqJQWxJH\nrnDgCr3NiNFyATc5KhgDle9lfTSDgkc+RLMG7WNzcghiSAkbLm8GIofe7be+\n9iMehOCBrViXaPmKj2KbmEI9ItgvCSuV6N4KPei/jW/eBWRA7CqJKQyYpAu7\nwyhX\r\n=CHvd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"62db9cb042e35b7c95ced87bd527912d2fd3dbd0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.3-alpha.1_1629202718412_0.6653463065908325","host":"s3://npm-registry-packages"}},"2.0.3-feature-7a030a-ksg3fgbq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.3-feature-7a030a-ksg3fgbq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.3-feature-7a030a-ksg3fgbq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"270f94cf3e633e9a6c5c943f8af711a5399a1fbd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.3-feature-7a030a-ksg3fgbq.tgz","fileCount":975,"integrity":"sha512-PBxsjaKbqPqSv7IA2DJ5bFkOgRFguoTfPgquJA1wAUJpTGeNcmHJ8wZRQXMOwZidFXStMaNksp5Wev3nWOP2jg==","signatures":[{"sig":"MEQCIA0evbYvKAdgz8OgCulOBgbHPA0plGz3Bv3FUDaOihzvAiA7jVv8RzCFrH/MgdHvcCGbyuAffToY/v43juohvUKQ8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG7fPCRA9TVsSAnZWagAADjQQAIWFj3jetHZwxmchEmUn\njyzL2hNbTrjkexVCpJjO4xE/unTxihs465B8RC0pDzEeaXqBgU2YUHiXIhkC\nt3rGSoVj+9tYgUxcPbF+e7Voe7e5vCv/fAl9adnSaMCJiBsQdSvoOKFHvmLJ\noZYZdEoRSXrJVE96yviecDqdFbqmH2avpHPeS70ZavLBjcOjkgRnGwC8Kntq\n1UYBnnQggjnWOfcO0SBWWTT77GaJ7GZEEPtOzK9SokFOSBick/spvRc+atpW\noREUT4UOViqkCZY0QFt/MXL20ZNeZmKTQp9rYBDJHf+SzQZ262hJdlle+OMY\nfMUYJZIMhy+pelJh+xZSsPW9sNstJ0m2+pKpnYR7hT8Jpn8U0M4eMbnfWMYr\nzrHvxY0Wv9HzmSWS/1ZoBE+tYI33+pz298BXGuVLGNjP4qLJKQ/28gnBRcn1\nmmTMrnDeObCNpLxGenNuGYurCL90c4k+j7Mm59VMJBg8w2EKhpvduCQUgPcu\n7CD03IDgyhCQ2fyIf2NZBff940gyBG51rGmsStEQzh413w5LLHyKx3uD9epT\nvN8ztovrJJykEQUnKmrePu2j1m/fGdJRbapIS3SX0wuzyfB5AxJrE+iGnUL8\nXF8jKjOLuRPiGJN3oCGp9+F4rvBhKLUlz5ivAcGbbwFbLuWOLv9YPge8YLAt\nbdan\r\n=mg8T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7a030ab0dfdd185b765da7f4362c0965d8726ddf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.3-feature-7a030a-ksg3fgbq_1629206479187_0.08595436679181634","host":"s3://npm-registry-packages"}},"2.0.3-feature-a4d898-ksg3xxd6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.3-feature-a4d898-ksg3xxd6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.3-feature-a4d898-ksg3xxd6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"787cbb7c38e590af743a0408dfb28dc117e26a57","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.3-feature-a4d898-ksg3xxd6.tgz","fileCount":965,"integrity":"sha512-w9rjEy38fSGwT9asxgqXCmKUeRDWGZ3MvGbY04SDvp55slTGPBrmJSiavxntTakcgMvPohKFZ27KOaCCf6jUvg==","signatures":[{"sig":"MEUCIDDEe/U7+kmkMC8/lVR2AnA7wikMmZ8HJvP60UhdYl4wAiEAyL06LN8iTcbihCdURnAHiaOch6xEhN5/6AhchNINTQE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG7s0CRA9TVsSAnZWagAA0AgP/RJkShy2WkBH4Hb7tzpM\nRQiKEccQQ+CtYVK+ec1BAISJY6mSF08aurYB3qirNaiui8rKpYG2T4h1MPXu\nV5uoExxc9ZeTKpb+SosIlLSWWqtGF9IrRdCmS53vbJtAvLMV9qCgYYAJeDns\nOpA0LtPVleL3IQqS2KFl4NOqfk7V5ncnU6wtHEhpBaWtpS6x0zDz3jj+nIPD\nYh2RhixxmsMKky8x63m6UM7lC1dQZmHk6y8/QDWFukW5Fra2AI+C0DPgxpVQ\n1+JnZKrIF9ti9fP0lfJ0+8LFpJWITX2+zyfwKLZ7QZHsiff2vTJMrO2lo8TT\nCLbLHibQaLFrpD41JVyba7YInOaOe3p1VtdZvoF+a1qBgcp4BRyk/233+tt4\nbDdbVvam1uRWgpL8Y/pvToJsynrfzVEzFK7GWtMt7upGnduqn35PzeGgJyPO\n3x0fHi47shEST/EF1MsgKnZchCxKhdi9cEqH7xOuJLCAr7/aE76yGgIeuWSI\nlWy6NKxy7JCM74sG3hgG6CB8ey4TpwtsecsrG8VZJy4aAEyx0GwKAwyQAynX\ng1qoq1oJS9HVv0ElX4HpHkh45Lm5BTCA50xwsjlrnGNlUTT2UhEYyZpTuqkG\nJQsw8k1MUv8mp9gwVUCXQlOZbK/KtJqviiFFodhqX9V8UE5qcvaDUxaCz9qt\nlIBA\r\n=y1+o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a4d8981e8c47fc4a25dfcc0cd729252782574792","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.3-feature-a4d898-ksg3xxd6_1629207348497_0.077058305126386","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"052fb4effc1c82ff1fb800f754d66a2d81c836e3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.3.tgz","fileCount":965,"integrity":"sha512-jdjYZtaStmxpZDmjLeKaGGPKdt0o98I0UYW6O0gSTsURzs1qxhstjEAO0AFfQ9Ie+NQwCTmdGtBmqtuEfR67+w==","signatures":[{"sig":"MEQCIEZ1NXjgChGi9e117wPf6+nXLjTDrmqhNrYqALA8JDidAiAVDHfzGL29VH/BzEvEXIU7rSk1BAPTk/dm4ce4KiuCEw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG79HCRA9TVsSAnZWagAAlkUP/0nmfEcUNRNJXzlHhYSW\nzSxLV3bjW8yin8U6QsAvZBRFxvbUO2SJRoyPlrlCS93K3/SvXa83Rb0qhOXf\nWJfGLUKvIzgb/bAK5QVqNj1++ZEkS6iTlKChXr+Wi7qwKUcNVbeVnbtzX/3e\n2are2kHqOcLO88hFj3Zj15gmH8Qr1VdpF4JO37eYEoWgXPHe5DuCTheHGBGb\nr0+uz78Z51WQ9W8CBW3JN3j0PtPyFvMBlDvH5K68zzmEbfbq9TKJGLsOLd5q\nItIKb6eLSNQcjwfhJttw5FWFbJogWVha3gkvcu+96X5/YM0RqiQOlVNgsGM4\nrHBcNbGQ9gFZ5uCLVvAHdXavVO4lI0GA9JidQb3TTZNYbt0MP9fxr9O4wMKO\nZjbbqXadAKoSs4uy/c/Kg+1J8xQ5AkfJl5mKgo3O4AFAa+Ps82LbrQc3qHWh\nejZHPIuQDawDazRdWyUCenSTeXryowJDYOBuxuQwNQIldd6aaB4Al36Q2MOJ\nR4TnvzpJIndJAQzZFvi597mGXtyNk9JcvKOlwojg7XivTMEb1ukeAZtBGq8E\nOXavnOS/RyaXTmk+jgyqN4ti34kI3xTDw283AWqJVN/gpLbz9P7iC5VP3Qpr\nskQNxSYT66j0PwmClmODzFChPy+7uyJLhELRjQ39zjqBMzP2ctb+ZoVDXv+b\nTUX/\r\n=Tmrr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"d36003e467c41156e8e3dc37569b188f7cd949e0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0-alpha.44"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.3_1629208391436_0.2315652125256722","host":"s3://npm-registry-packages"}},"2.0.4-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"04b4f3a5581fce20e9c414a1fe7c616138358744","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-alpha.1.tgz","fileCount":965,"integrity":"sha512-dNK+Eth1YElNDUHK+fYGemIRfilzwVOMumiziV+V8m5OvT3SJVFMuFehUjBm/txeZPu10ZEVDM8KZMDUIBFuHA==","signatures":[{"sig":"MEUCIQCKKabCrHnON2tfpdWaDPvdl8M8je4Lj8xOAuRbwEQEuAIgUTnjLaK0WGrBq+ykdOW5Lf1RzlBElLskDqtqxHnSN34=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG8CnCRA9TVsSAnZWagAAUVMP/2l+c3AxC+KbOAobz6+V\nG3mid1ieRu3LAUe6Hbqv9jVLJVBvLKQ8VKtouFEF56uPBqZEtn9WKMQWsxIF\nFkiviLoatAwqUQHTtlgA5LWG92CzVrQEba0Og7X6K6BwYOLcVKg1HhnviFwQ\nohh0SKXanoxSpbqDugx/VlBEJA/uix7rjluc0w2+5QkWFT+yxvoAEWme7XW8\nFRCMHFxV9z0Q7Y5tR2qZdP70f+5eYu9Hdg5RdK7Ex/ZpvKHZ546gtV/g2N/9\nuKQjqltgDbEx5pI5YZ2k80RWc56MgPILFk4VZpZqaEJF8QydV9ZaiKu4Bs0R\nolhOUFPu++XVVibT8K58bLaxJxrn07EfhY4+i50zoxnSs6NRA2xWgAsvaQjO\n4+mrbYk2XrdJOnFAtFzVEzG8NIfzhN0ssfuCjQ6lx/zu97QPcv4/LKWLd6v8\nTXMxydr0caAhwYPBLlD8yyrIy0obD2HM6K/lS5pwjikzL40wzAX2p9nTg7sw\n8asV+plTE7Ergri3638D+1Kq+NhsGM5Y6SxuzYKAAhrJlTDcGeaW/xt5CuwO\nqgGu74h/zXn02EIfj27on0etikTLYewp4zJOCeq0LXviy+NpzwnnTWhav8mQ\nJzkJvCJ9DVYBBWNqwjzxAUuQCPi08thcEVrNrI3X6bOAX8NFv4YFtwNZDRUR\nL5aD\r\n=7iPc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8b9b4c385326c060ba5e07468d7ff057f7c8cfb3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-alpha.1_1629208743393_0.09862515225633306","host":"s3://npm-registry-packages"}},"2.0.4-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a8a91aa8bb032614b13add73dc2a62671f7c41fd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-beta.1.tgz","fileCount":965,"integrity":"sha512-caUzUt5wuU3KiNxgwReJhTx/Kxo8UHxIgSiipRSmKrz1rkxC/JkllbaEzt/Ynt65O3rN9hE4+vT9kBPLOGdJyw==","signatures":[{"sig":"MEUCIQD+Jxf0zqjDFJGDSxW4wuiIZ6tZIX+PLTZ1n2zL+YkvvwIgbApNtj+kvnj8fZTLAyrq6ltJcXG9AOO+JIdE+waUCD0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG8CyCRA9TVsSAnZWagAAKXUP/it+z9LnAL6OM+F+qXD3\n9FYuXVBub7dl3IwZXk4e6lhnyu+yNZIQ/dANLUDt8zolpANVtOua5HQ6hSQV\n3KwNogsJlDZdiRXkTP/L8CDgm9XbIdqWCuPxRVf6KrD1VsgFRdQ4+HeI2doI\nuA5j6fQjH7l74AtNoyaVSHbHVA6WLGxMJTO8pUmtre3u4R6yA5Y7W6mf0xd5\nX+eNuuw4KLaVT+uiIOMRcQyI5NzYr3HWjOy9YzcnlAEp8nhRGUhPRqU+fm+k\nRMNrS5EtKZdVaRj4s8B3uX+l98RJ1AcCur4vi8UnqgUgPZJTpfze9Ch/rymP\norjq3NJlXc+YdVvzeYhRryUPciw9FKG/IfoJDVHolbfmZvlxz5tc8KrcCY/f\nG9Lj9awp8IoOrfRQcGscbiJwgIvGQNi8semq5gjw7o+atZ8xQ17ixRX44EXa\n/pI+Oy0lRlW16AJ4A5Fw/Ji2RC+GtzhDpowbJO3x4BUXSCrKOK2E8Fj5Ua4c\nA4M5DOw3YkL508XQ71GHOOdD67/8MYePRy7yZTGdN5nG8Gm7Sm5xbcr8J/bF\nDtSm3RprvBWTqd1G0TiA9RvCaTVK2DbEx+QhB9qC1EllxnnpSGGaawJ+un3R\n5CmfrNkeGC4DWy0CHwSF5cVxn7d+4+la7kBoJ8g5tEcqZIH6xaQw8/nTxuxf\nytft\r\n=AekQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c27ea50ad08811ec3a04d33faa9c11cf9c95dc72","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-beta.1_1629208754630_0.3287949647096795","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"57488ccec7e16ccfd1fd2ecef65abbafdd0846cd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4.tgz","fileCount":965,"integrity":"sha512-HpxNm9vvToNpuZcr+VkZhZAbZ0WFb3ovstIRjWn/3QKWQK2D3GI4qs9dSFMQIYXOf2VpYN3zDczzlmmyboPl/g==","signatures":[{"sig":"MEYCIQDu1qY3Odwha2VWci1Fkt+u+lQPE3v/UyYrn8Bhl8+pBAIhANSmPyaM6VPBUjlmQ9oFjEjo6zOoDZJk3vwG3EjC6HZa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG8C/CRA9TVsSAnZWagAA4y4P/3dpLOpakCtNZUKb0sv8\ntR/Avw5+KPyac+GOlWJFPhVmoZ4inHQ1L5lKvmWLCZeDV69UC/kein3z0H9U\nDie/O7BeO+wQTP8kVMkZSpM9odM0mw0PZXtsT6GuZqAKcwpVhTTPL8ljd6rm\n6azB87nHiEylf6xteTVe4MC5ppO6whcx0gtrcPk81U5/TPLx9GCv7x7bM303\nnKMCX/p8tl7xpTLSoz1TCaFHaQD9hJV9/ikFenHvvMuKAFXt6FqdKX7G7OCP\n5LM4bJmGI+ofgI6xG/nmsUytOe8+fhayuCJblgOQePbX3Hd/MvepZTRasjqG\nCo3CZSiWe98MMEkSFKTDpMDYkel09Z5cm5U6KVHZGz9Ko6q714kCbfasFyHb\nwHjxAFDuPYd0eXC28mZpy09ZtGHuxx9cUazdXOUNQaO4NCEd5g00Slo7wpDD\n7jEisx5rdzFCi8jLjhc9J55gRTnosflvukgIKK1jDfZWlrvOtA6Nz+BoayiK\nYy5pSavCUTkFUmawSNtJZD99Wo8G7pB5ft716E1PFyh0Fe0OEoQMu6n7GlZE\nbydqlrekY6AVEi8k8ja7A7+4E4XyzbbWcjjKVf6I/Xrx+5DTV8CFN/Aeo083\n3TJR2jdVV7X1Is7cvWqwZKlTSK5wJAgMSP5l332M9dZjls/Ehutusen147ec\nyu/o\r\n=euje\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"1577106c4fc53facfddf768ca3500f947e2c4ce1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4_1629208766974_0.941874865028042","host":"s3://npm-registry-packages"}},"2.0.4-feature-cbff4d-ksg55z2f":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-cbff4d-ksg55z2f","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-cbff4d-ksg55z2f","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"51f6436d5aef8ece0293d1b8176fd5e4667b1ecc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-cbff4d-ksg55z2f.tgz","fileCount":975,"integrity":"sha512-C7gduuoWF/ApFkpGD8/OgLlcGQfsK1cvmI8LPVfVaA2jyAEQQPbp/F78uVfYBUXtDVy/0XUkuw/fGP85WKIRMg==","signatures":[{"sig":"MEUCIQCAH2UVObnTzIQbz5pOq9vhH7MEQHbyN0IMplNAbn418AIgTY1eMUdH7on3IP4eOqNEEkn/DEoK+x447qiQz4JmQFI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG8NCCRA9TVsSAnZWagAAfq4QAJ4uLhS6md5h+ThsG1o4\nZTh7iOb2uTLlVoohU6muniQTcIaDpBNhzA2b4d/MG7zHdA3G7zYj+834rLe1\nJCoIGhRtdUpiAc4yLZTABOZdW1GVOx/RQZeBYyZsZmvN564isMSoOszEjIKs\nFFwiE9nPt5V0z7gXI/M1cT+gNxJAsxeMarBomXIXySu9qAYTLFH0tILE96u/\n7Zxpgc+rN9iMTmZphiiDPkQ3SiVD3F3revDv0lGUHKvhqlZXsoVIT80z/IFC\nz16fbv741dDBvpRW5Wkja7KXS9hAKjd2oZCR/yUgE/hGNEAKdaabY5FVTxIN\nCEW2HQP7H1qDW4jWkJHXfvEAAOssueEt+0R932OWYjfrVH0qwsc1ai7te1AL\nO/40DRRv/35y1oERD3cT1zFgjKroGixFOd/hiSuLogfeWI/mtTFdjWklQqfw\nQ2k8wSfJLy9rbtzP7VXIWlc22oGyO7mkeSMofC0l9TzX9ERiZffRLzIXxftP\nxMfw0zEgHhcVUZvQAfKDg3O0VPgR9IkvOLbkR9BwiJ9ty2jxFfHLwPg1zZC1\nEvIXHbJIB0n8UsG4juHr3MuxW5oDr5LMtezqS75XqD7ClB9ZOJu98HjoA84C\nwp3OPW8ScdaNbreo0gmXySWsJm30NYTi8Evs1lNSsgTzzgO4xOm3OJN3kLId\nz4yF\r\n=JiCw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cbff4d303ced8f86bc2aaec5167534aa0babc417","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.4","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-cbff4d-ksg55z2f_1629209409949_0.27262452229461087","host":"s3://npm-registry-packages"}},"2.0.4-feature-401017-ksiz8k5s":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-401017-ksiz8k5s","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-401017-ksiz8k5s","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bba7b18751939c47b47caac44c0769bb333db392","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-401017-ksiz8k5s.tgz","fileCount":965,"integrity":"sha512-ev1Bn+fwfPKIU7ggm9W13nDfWqXstCRAuvh98nRLHRzABLhA04dWl0cdkov6fPtW1e6TZET0GIFT/yb4x5ps/A==","signatures":[{"sig":"MEQCIEkcNoQqtKDr7RwPfw9o89NAXuS1r4Ju+hprD8jDRYJSAiAAgBxDYAqzmqsRD5YWaiTh6++eFNBm1KQnmEMgPYP5rA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHmD0CRA9TVsSAnZWagAASWoP/2VOJR7upAha1060STPw\n0OMM6BKogrDqUPgdXn9Wf72U27YeRvGiqGBTfX1iZoDHVnv012kgQVZTpRa+\nGBKk2kpNHOrTcs0AlGGBKR2goxnYisrXJTf29MF1zY18+FYPzp7CFbqjVt/m\nH8TgHCqICH5sMRUGOv5Ur1RcaPHlosEZxZ7OP1ua99DD1GUu6wg9/ZnjAuag\ng+tQQXAR46px1+nxZAxferFF4iAFYuZqRDQmWvHZlQCFjzupafR4GrImzHVV\n85bXxnOQd/BYVGNE9pLMdBRSwYAkaKfCYEngmfeY9KJnvdqui1nK+L10hYt8\n17QFw5yXOrDrhXt1Jg1D/O449e08LJc8QdGCo8RP97O7qpJ9Ia/RvqCtgrZD\nqizG+FllAAV+lg2lipwcBqk1OgbcwwJi3QR6G0jNQ3jOW5CrTEXOQmn3B4Gv\n6dJm6cfFGDHmz5mIrwOp3vgLQRMtnxhmRDGEkHvFvHoIzjSzRul3NHHEqXaM\nhG9f/2V6OH7NXdxHKwU1O2NDg+kl2cetW6ELoJ8U6ttr5Ac/wlDMPMwZ8CEg\nR9BE8W/IURTefCemaYR4HbkyK1Y3h+xtiT6l0ni1495+ZUi610rzuh59SCtd\nOJqGTSpCv8sUZJz8a9mYdM8n+lpI31wOfNKxYvF0uOVY1jZuTAOGSNxpjebs\nyPP/\r\n=tBxl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"401017f1d59ae7cee61ba247db546fbb781e4a01","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-401017-ksiz8k5s_1629380852260_0.054739807142037966","host":"s3://npm-registry-packages"}},"2.0.4-feature-66a5b7-ksizcyzf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-66a5b7-ksizcyzf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-66a5b7-ksizcyzf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aa9f35be4fbf947209edad32ad1d3e20cc84cc62","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-66a5b7-ksizcyzf.tgz","fileCount":965,"integrity":"sha512-oQhjXiLCYAZHGIMyIlJp83TuGfouaNzK6o7wqAsvnRvhCTqFRMQaLdF0RtQyVDgKCPjO8D7OXEe2BiiMBridDQ==","signatures":[{"sig":"MEUCIFeUtIzGyO+osVyjiMTAul0DZIQZp9H26IyuOFYyK0Z1AiEA9BoXhfVBhrBoVuJPqGg6wupPtouJtz4O8ppYg3M70nk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1623762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHmG0CRA9TVsSAnZWagAACWAP/2oF51PLbeoA0JUSh7jy\nCOjO/Gy7ErHbxnq6UODa6hqYkNhLCGVzHbb0IXdB5k3QIxtSFCjtqER1+oY8\n3STSazbiYHT1UEcDHUcbzxuRQZtwpZ5x2cdcgHY3jmWY7+Rt3Z/hPrNR80zu\nE8m39L9fp4SXyLh8KEed61/1/MFLmSxfgkVsxCdeGxiojgGVyyVaKqzUIvR0\ncmqI8B7GIRIdqSOM81vna5AGAucJ0PwYETwaH3wuL95mWDImVrS6DySaHjVn\n2nSc1pXAX1Vacg09vp2WqSmpzhh6f0ZxbEZLb36QHHBM6sHszRop3BkoQba6\nrWCqIXQh3eQpoMbPDInhV/x7rS/q7q8nLy7D2ffQuCLSSB0vxLWvRF4yWbBp\nn8loX8MeftF2OH2yKXsIcIuQ9YI2tsD4JWxNrAatI39iD8+zlxHoBqWxCFRZ\nlcx0OkMyWzHyI6mB0ig8mpFbgtESf2R7LxhU1rAv/3gOx3/Cv7+8m1lvW0Ej\nsdiYeVxGfwiJFtogKOR6IOV0dc94xlgd1uzIkbRJjtUUwMSK4lHxa3vKRqI7\nXQagG/jb7zBPH8/d/7FKYK+0PGo6E2TD6qFn4J58B4QJ3Q1pQlGwhXJb+BcE\n/yEeqh8QxFb0bxxnc3tIiQ4SCjP5TLp0hVFrAsysl+WjUh2rQB/KrPnaBMDu\nMd3j\r\n=ycxd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"66a5b7991c0cf454bea687ca01ddd0cc22ee9b24","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-66a5b7-ksizcyzf_1629381043940_0.27392366556344006","host":"s3://npm-registry-packages"}},"2.0.4-feature-d29615-ksk4gfb3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-d29615-ksk4gfb3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-d29615-ksk4gfb3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9202fe512d84968d7b5138a30f8194c95c4dc0c3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-d29615-ksk4gfb3.tgz","fileCount":965,"integrity":"sha512-XT45u2HwOU6wOyzPTadKyG/lDStx0jDghdM3suFbyESqFlu5SvBUlZ8G1YPxe6K+eNukDk7iWfiKA6UM3vIgBA==","signatures":[{"sig":"MEUCIQCyW4JcprXVzhOLPANOkdyXc5gBYjdckZbuNto9GKJzkAIgd9GEhZ38KIrVZdbw+xUZnFq83NTHReYds8DXCizMjRk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH29VCRA9TVsSAnZWagAAjBcP/A5HxqgE0pLExQJQvbx/\nEbb0tW9n8KruTsOzAtp+NhqDO2Ga6p3ljnfcLnueeEd9sEVEschTFTHrTWlH\n8R+vbyczGBbpozb6R5LoJxzyP/ewoAjq+hXDgL3RLnOxyKQdb2hx03dRNIzg\nMBKLzOrUfmRVT08ofV5qdpCIJ3IBtPn34cTt7iOkB0KcI1kUNIA5Nfx0JFf0\nYuAs4RAGlFTY5pETa+yc5M/mYWwSwD+6zmcrJJjZX46xpePWG7dGXKJqu60P\nXbj/ugWTwgyB2mIl7vKuxUQ03BpZQpu7q/n6Jzj+wOQ1dekLQWL549ogGIj4\nveoBJm5AssdBtykV+VhYOO6eZJd6z40Hus7MprMvq4AMJyoHwtf5hx/u16fo\n39qrnw/X28tfHDUFoeCS42EG/0m47hF3f/R44Z1nB7jbuQMbpqE579mECKKN\nNVK+0flg2LDjUOOcIK2tIcASfXt+M0hJRWQBJEMddge0IOMklJEC0eA7Phjr\nAeLASYr4PWUBp7iGjyXo60ikjKKcUTf9C5JAIi3GDAUbGmjnVFiNmAtxwB1/\nraI1Nrc5KISZtjw7lLmJmXLlceZNCaHL0noZd4CLE1yMZ6TiqTP7w/bxmFCq\ndCUkwz8cUdLCd1tjupNgYHSdnl38IRzQ4ukLyiXOslj8eh7KdVo6e1FmEua2\nLDlG\r\n=/emr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d29615dc579c065a2f492d2f4a92db93d3976033","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-d29615-ksk4gfb3_1629450068915_0.16043703815413624","host":"s3://npm-registry-packages"}},"2.0.4-feature-ca9f09-ksk4izwg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-ca9f09-ksk4izwg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-ca9f09-ksk4izwg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"815c40b0d1468503958caa0bd3e111dff8fab903","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-ca9f09-ksk4izwg.tgz","fileCount":965,"integrity":"sha512-GMWj7g0aCs3EG0celciU9HrHKizomo2ykl9Jlztuw0+v05jPFaAjEV5z1MmdOQt7QNuj0L6M6vbwi0bUUXcRcA==","signatures":[{"sig":"MEUCIE8IFFJWER+mrXRJjVjpp7dOMedAV/9YPXUJHjcugbxCAiEAjYEeDWX+qiSzd4448xaKr7dZL+PH6R/V6IyG8Bj7K4w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH2/NCRA9TVsSAnZWagAA70QP/0oy7pbTApIE6uOz8cye\nrfzn6tzrfz+zKioajVMh6e6mSmmGKCuMCnqiaHLtU3bA6U8jzzhl/ZQXrClN\nIY4OMSzezb5d7/cc4zoB8IChq2fZ7DPpCcLQiDiF13ARhastfAAAf9k2y4sv\n8jzx4kbGhfJKs38DD0rX5EWyAGP9ZTiJ/CDQuZKDWLRw50qh/5E12DZJhnjh\n4zQsZ/KXAO4gOeHTf4jS2CQRdLLzEOyZZ8lLGedSV5stqIlSYgLpf8ZOgZ/q\nDZ5SI3A+Jq6a6RUoy8UjPz8KLzVUac/Ilim2n0Otq5DTvT6OU2eFZZ2FI2Pd\nE/wYlBPyv2aglb65k8Qp+PQTxEHBtUE2AW85bnCCtWLCYWb3wBF97+3WC6de\nK8zO0mJ4OF3s+09rcUdCXeyvyrn7rBSb5ZykP9vDv8tUP2yrZLXSrI6P21xK\nP2KGkv2WYu0n+lXUGa870rLayYT89jsxcBprawZZjjAyFStGE7HnGm0oQ6ez\najnaskpRDMkV6PRFBCMk1ZyDq536/MIuBPD/KTS1H3D0HIGN3k5wM/VZXzhC\nOhu0hC6NbZSd+TnM7bJBn/KmHDDco/g/ah0ZLpbJMQ5JdmyjghjffgTBfhQU\nfDXmYMPFAuuEDs1lWXGz8ThbPDSdhCZG/unCMqcF+bOc/FWweXk4V1bVbEQ1\nbFDO\r\n=48ed\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ca9f09e9e145693e11b73391be83744d9b279493","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-ca9f09-ksk4izwg_1629450189417_0.09287660491685235","host":"s3://npm-registry-packages"}},"2.0.4-feature-12bd65-ksk8xelx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-12bd65-ksk8xelx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-12bd65-ksk8xelx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fc7cff6c8f6928b452974bfd186c5b3c2daf0738","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-12bd65-ksk8xelx.tgz","fileCount":965,"integrity":"sha512-He3jzldjc4TfmI8OgnBQCjE2j0/rKZkWeHP3CU43MrJj1Jx3xt24lr7SLCHbhAcpJVit3RYTGlp85yWlrzVKzg==","signatures":[{"sig":"MEUCIC+dxrI+NxIXLgwGYMgvNEwLoGlI2scz4uoWgVL25a/eAiEA1TnpHbZLGk4SkaJ+e8FkkCDZk5sSGsI6kf1N4tfRL9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH4zDCRA9TVsSAnZWagAAV/wP/3pyV3nSpS8zv5Rs87Yo\ns73fyGWX72RFy8o+FZzWniiijWpNFvYvkzQtMSJ4bxvvqUfAombyvyioOOo8\nDydsj++XCPrLwrwcdCxnhBB9wRXG0bw9F0jKQin2K1L64ILH66zVLD5Fyr6j\nkbN0eQKU7Rm9R2jkF9YtomF4Y82HDNa7v9Hw9NYGQj5X8pvK3jYRW8MT+Bf2\nVBPw/ySN3GNEGWhEYkG6BqCCAJclZiqq+FrCnAC7JAdml03kr2myCpZ5fCpY\nM9V0or5RlfprrcF3M4wJm1Ud8S/keSlnezTPuDw4XqXXde0Fq+lkG15VPMUT\nBfc1c+qy/NbBEUp/7of62vRGEF5IdT4scFqp+cmBbnQqbF4xuNwvXssQw3wl\nFzRqJQaX0od7KA8SZWMZ3VfXQSe66V9vSeu0G1dZjYWeP26458gsVpzaU5AC\n3nfxJac+RCSRISw1qlU+8JkPwTGOOmjW+J66aFn6IcpotpBbINFRr2kEGjyL\nq/cN6VDDD5c8CqITO+0gTXoDLbdsFsV2zIQBpI3tb/ID9yORsBXprxPbqief\nXFqzSuFDWQErvF3YgFWdR/ibSK/WCPRih6UTyu5hW3qhFU5y5f+qH1y/SiAR\npcS2LHWMIBK7+EKfaLRTVfQT1g3P3MFk7lCU+YERPjqPKm978FO9aknYqpQO\nh3iZ\r\n=e88c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"12bd65e142a098598ab7ac6007525a32d508d881","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-12bd65-ksk8xelx_1629457603244_0.9831522575737393","host":"s3://npm-registry-packages"}},"2.0.4-feature-00968c-ksk9f5fi":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-00968c-ksk9f5fi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-00968c-ksk9f5fi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"772140ad9423f353179e1ea8025927f7016c0b0f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-00968c-ksk9f5fi.tgz","fileCount":965,"integrity":"sha512-4U3ka/RhHbZoJIYcvramoMokGq1FnvveTn64OPZsUJvknmzmheS5mLwu4eC8UpDLZP0BCdxE2uHgmeB581qEfg==","signatures":[{"sig":"MEUCIQDahh7Jopj+cw6sezxZtRIizE1PFHQp0P2ApJmkv36RNQIgCzd6Mav33xg5JD1/QNh/jqKO94y3eTdjl9E44EJq0hM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH4/0CRA9TVsSAnZWagAAi0cQAJ6HPz20hecLXik0fb7g\nXkYFdg/wSnnpzExgux1Uy7iulELx1eND3i24dqZFKWR1Ep7NbpsawAvRUUp+\nrnGWx6bN675v0sLsOy7dbujE0mfP8AE1bTa9dG8QVQX3VFIEY3Z5Hc7XlT1E\nlkAKHDz1f4NmicI4zMhjAJmxG/dxLY2GaUZl5ycZ2WhwsmyjGCDMOzUNuAtL\n1D21lNTKAxmMxVM7ySt9uAX4b87/fIE0QtL9FEyPOmEmydZbwkZ3jBdMRQDA\noCsrz1ocoD0ErSXOWL2/Gq+4i/D7nbWrV7bekUZlxC7sw7YoxxuRZQXIVgDN\nZ0L4D+TKGnJkKq2LAEL2/oTIhUnyg+yDKStTyqKbtQKVpTFVp7QBUFKXeRJt\n9zqHDjaRbxIq5xSyHm06OgeTN7AKu666OWsOCCimEjaLWo9Pd8rEh0aNQGdp\nxRIDgp7s0gaIpUhy9rIB+GHdwcmtvnUcqolRN+ijB/WDOhr2HPtp+0Alo5of\n4ZlI/0dirFwtx/yCTPDrwutpOsOs7cRXS9pQbo6nbpIpJFwQzDn2yUE9I2xe\nGgf16zC9K+0jXREQQNj7M1zamYiDPWCplX4pf8QF8r+jMO+f7o55EN4c58Ni\nIda7eAUMcmMLJrCQTNMWcpoqLDjOz0fWLn8OZfD2qF4F8tf1geD/nvkoymms\nfKBJ\r\n=N9pL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"00968c0637b8bfad16e43d485f552b6d084a19af","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-00968c-ksk9f5fi_1629458420325_0.7312694297871769","host":"s3://npm-registry-packages"}},"2.0.4-feature-56c202-kszv3v0v":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-56c202-kszv3v0v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-56c202-kszv3v0v","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5c1846a08c142811f0f2e0ec32b69c22e3d88f28","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-56c202-kszv3v0v.tgz","fileCount":965,"integrity":"sha512-QplvLSQxlRLpe3FoaVINNmlbbG1iP3zWYY+P9eSyqIt8PcdNNjuxQHL/isZ2X0Vbn1DZa+rM8202kz1NZFv95Q==","signatures":[{"sig":"MEUCIQC2MCZdBUQ/cfTmQCsicYi0ljlc3/gVutPbmPFJ8jAz0QIgZvfVam1Qa3Nhaugxky0IFV+t2aOK1uKjczvj6MF/DK0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLfUvCRA9TVsSAnZWagAAZJIP/2Rwl8hRJCSaDFtlfiZY\nu6P5UDQnS4d+mBLAp/5bNVVucnQxxjyOjRBsHKJZ0Qjr+OBMqqKt0tdnpVYg\nmcSdPZtKBzWxnL7FcC7WhwB0RAFPzmA5kvwzecJbVPrkvWUo6/m5ZVT/83xZ\nlkSokgsxdRf7TjRnQ3ASmEMUs/pSd3q1Q4o5eJv4uwo1spjrDdGI0bJC+baX\npD1ZELbp363vxMIv3COnurkYrSYhGCJRjfI7SZ0T9xk/lIfYfXXhwPln32uC\nAu40oSs9VlxaStHH13iJg9L4mwRb2bIVxt8/PgZOUP7A2BbZFR/AP+wHreyz\n/6bT5XBHosrRCNsHDpaStQtrOxoWDaMwr8/cEi059aT2eOJ+DUWrh1a8++wm\nfMwslf/q7yNspkXBYcA+UOXlb5cU7RkzLRnr5HfZ4K5zWOKwr2ebO928DoyM\niC7UBtcOi5Z+dJtEOsaf8xucr00oRCIa2kNT8BM57sZDeQRYlIhgoPNlw1X5\nSxPWvmJ3jR4NlD5S13PjfXTSCD12yibSXQsUTAPs1MlPKLmpjlpr9oehZsvb\nZwd6ksvce8T11QVyJV9+8ke8F+6wCJCuKfcfsUzJRhRmRJKRHzhI9XBY66pl\nJyIRpY77lONdxLkTdmjIU9AeB7S8RFaZ8Qm21msoMp3l9PBhLyC/z6QRHiCD\neOO8\r\n=o9p6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"56c20277e175d183135f795f175883462601e526","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.14","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.5","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-56c202-kszv3v0v_1630401838840_0.22738556856868808","host":"s3://npm-registry-packages"}},"2.0.4-feature-82c24f-kt8h9un1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-82c24f-kt8h9un1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-82c24f-kt8h9un1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c8064a12040a861c586cbdaf51ebc5f3f5ebaeb7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-82c24f-kt8h9un1.tgz","fileCount":975,"integrity":"sha512-Np50af00skVFV77D2/R3Ba28gRWGFt2zgVJnf0SaTFbsRx1Hp9JvBNUgHRDPgSiUYSF720mwc9iSPN8ZKr4yNg==","signatures":[{"sig":"MEQCICxGCLWrlZ1MbkziPHvuk1iHMvM78zjsmy9MfKQI/Wq5AiBhJktazcKTFQJ87quglsgnHX3u+Kwdjqvk/byXp7Emug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNegmCRA9TVsSAnZWagAAv3IP/0f4ghbfMP7IJrUfh0ti\nbzg8UYgZhxVA2XavzROc5Bfx4dL1Ulpf7wWt68JUv2DdjJIn8hVlMTBGsz6Z\nIN95r/HmyAy8ld4WX1Scy+zmDbq2+cOi3zbCq+PN3AKenES/OD8QokNbKD2C\ndNHDcJZNNupXGRj7Cpur0EKSz9A2xsfFeytkB1PojxyxT258awnj9dHABCk/\nKE6PiKCffUAukQhUJHgjB3NwOzJzrtULzpWdInLdZTp5qO/C12PBPfAbx1Xe\n/TFzFBDMSj5YwMB3CLKhFYoqVS/L/8bDRLLT0aF1xYG772Q8P9pmXYJg0rQl\npJGRtRL2rZHxzhYaQR4adlb7lrcioAIQeSB8PWck/aqja3YeuDG/xo3FKzYi\nTHwNLzi5hMlf+WNpF1e3F6+QNLT924b4roaavWRTXb9xzMzvIZ4yeZ08T3S8\ntsctjgzolibO+X0PbawtWILXbY+CJC+OQRTONU9HVlv30/kypRRlk8Nta1a6\n37AOcTZnEZNE2eKdWk3Hs4eVH/ZsSjSgddyZ3VCO2I3YXe5gdMw8MyQS1Ffz\n5Y0E/uqemL7t2PJM9qu5uRwij6cAtU7FjD9rG/NK6offdQzJw0WENMwluZ1v\nTT1WJyTBUkxQBzaKnEL86Rxdd0Dc8GHrO0ti9n7my6O/2b/DzdtKxBOeLqjq\nkwzi\r\n=Y80R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"82c24f1b0777280db7cb56685a523bc8ca5e004f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-82c24f-kt8h9un1_1630922790424_0.7964345628846239","host":"s3://npm-registry-packages"}},"2.0.4-feature-c84a21-kt8haxcy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-c84a21-kt8haxcy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-c84a21-kt8haxcy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4e9a4a7817c33bbe810e3f13fa0eac14d8d90592","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-c84a21-kt8haxcy.tgz","fileCount":965,"integrity":"sha512-FaJSF+FT86lkR56ERxNattlES9YYPf/nwCsjKFJ4CnU5ro993CKFB4VPG1Q/rXELaDheV+OOeQ/jPt+apgJJlQ==","signatures":[{"sig":"MEYCIQDIkzqsPbV9wvdI4RCP0JmOO5tzN5YJZtNnQYTrhiuK/AIhAP44XS74/MSKFwq81//udatIGynT49uQLGa3yjB6J/ia","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNehYCRA9TVsSAnZWagAAalIP/0G2N5IiUVlJQMYqUIBd\nQ9CC8k/N7xjVkUTQL3FfFOraIYYHhTkT0JX9JS9p1FUPrnnsMobaYz9IGRBX\nqKmd80NJe0RteCTAc1wIqAkUMdupPTO5FNPjsR4zzpye3u/hxFpfZQ+60Fl0\nXgL5q+qwSZI5rD7FiaNI2WfKjSY58HURXAcERpCbCulpXvo9eSevYPwbvj5p\nCT4QV7R5ImmVn3yrD6ufzi2gKNoNM/OUYGWn9HuOMzvVUOptNOOSsARGP5Wm\nuPvQ8H+uDXytnurkoOrR8mJjwkEQofzkLUYXX1kyq00Mb83S76rwyqIgDKVH\n5/go8FxdG4Awsr4ILS3uoFqCniMThDL8BUg4Loz/a0E4iu7ffkcKcagxn/GR\nJ0kS2s53VzYdjd+wadItciA9CfUDoz2o9DLymKcfV7934I9S3eMSquc8+5Vc\nyinS0YbGHqimHMXnayCEUYwQoMFPEVwCd88AHOaNUB2YdPyumAoxPiRSLThm\nvK8advqvyTmpjI7BM5e60gnwwUKpSrH4IlyI65ofNf4vqpJMmvBw4zvN+dig\nAPmNz0+HN+98BBxDKi37T5Wqozqr5Iw1xr5NXDoY5yA+1TmfME28G3vHxqE4\nyppZjb9WDUMqH/jtvCq63vBVzn0u8uUBBCkvQJFWlfKC32rBRZ2dRHgxGFzJ\ncE+b\r\n=iim7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c84a2165ce2a0e76c997227e284ff1990df3e9b5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-c84a21-kt8haxcy_1630922840798_0.000737900605228603","host":"s3://npm-registry-packages"}},"2.0.4-feature-b9b50f-kt8ikmrw":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-b9b50f-kt8ikmrw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-b9b50f-kt8ikmrw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cad612a560e7e41bd6667d3f27fd4b7956cbc6a4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-b9b50f-kt8ikmrw.tgz","fileCount":965,"integrity":"sha512-NigmPYu5qlKb1ph+OUTJzS7Oh+fTagKK4dw3YoagZ6YITMMq2OW3RRbq977jn16ir6VVl1DYvaxqsWg3xEHB6Q==","signatures":[{"sig":"MEUCIQDL8yyWqAzGPk2KjI+7QM7ImXW1OAmx6+ufhT1h3g5svwIgPEQDlO3WAweTz+5u8svZVo8n6uTnZaEwANaXAo/e3Bk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNfC/CRA9TVsSAnZWagAAkcIQAIaSvCyGHWXmIeZQ8YOh\n3QPFBgHszZvonYe/0bNjqPHTpBp3iPnYOvIXj+W0l9Ozep4GJvi0kmfv6+Uy\nLOoV36b6xBza4yqmg2y4sXlT+2uSAB0f9le0u0wrEeLmMgUErbBEZJXcOzED\n2w0f1X3cjmS5FgHkoySPtmALQFhq2pDxdu91AdysuPYsi7nONc/EQXvlW7v0\nFqDO8rhQE2g4EzrOV5D7uwDUNOvjD352INH2FcFxxeZmREvB0CjCY3jhn9MJ\nTNDdli5Vs2Qy5XWnoo+VxTCxVHbHEDaozhbOxbihKUBMQnwfsEVwG21ZmzAu\nqR9oftS3pWr2YYJqDhmvx1aCKiitxHDymr59lA0aig9SG8xv/tyLDheapvR1\nVGS20gdUqvGfLOPYYzFgGZY6L+kSXS98nH3OFnNoBdUYXa+amD+goso3oFwO\nNAPFBJSwac4TDGx+z6/D5yVqS4O/ftel/IrA8XJm4PmrXdqI2ZYpPAC/rvgv\nld365iH13HXiMwDElFW+GAOW36JzP3pYauUSfRpcLkb1BSycxc5IMpew2Q22\ncKfKKDjSle/hOEbD0Y9SI/nD88jluottdi5T3ZspIDiyNnm86BnCEDxqp9bs\nHfSwJDpibKu19vYoWbcj1/xt7qMt+BnKHQMKm8LjQhgwWHb7rgUBQxj3QOfP\ngWr9\r\n=uKTF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b9b50fd140354cc7f29add80aeb4d354d89859a8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-b9b50f-kt8ikmrw_1630924991015_0.6960888851573828","host":"s3://npm-registry-packages"}},"2.0.4-feature-b3675b-kt8kezkk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-b3675b-kt8kezkk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-b3675b-kt8kezkk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d1db10c3839ddc47077c20a0091e713acd62f457","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-b3675b-kt8kezkk.tgz","fileCount":965,"integrity":"sha512-r3Dd7jXG1sKWZbOWJQo+jxNi5ao89r6vbIGXrs2RHrf95AGc8T7QB2JwBqi59dAnHF2Dm8ZTJ2iZu+FFXMZf/g==","signatures":[{"sig":"MEQCIB6QNGHSAaxhGlkbCV/qycBls/0u2RnRcHpHCEN62RKfAiAbbW2EPVxS2gIEL6O5vYLNyxuMrd9A6yd5r8fUcUNYtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNfzdCRA9TVsSAnZWagAAwakQAIeF79VWjwe6K8QwfLTt\nvvktO4fON+yfguzFix6swtiv0a7iopNxGYY1/MfTwT3RKyS1eGS41sNRdjo/\n034iSher4KGwSQ5NbeqnD/DshOPGjGCjyc5SrwOUHIZbJLOflWl4od6YMoas\nWqWXBe5+9Q5VRIZPjc9BPRCTWGyrDF3kVNNb16aoR4/yFnXyuMwvocphuxxc\nhkoaxLnUDBcqby7CPnfAKTcXGm8fDXfmN9iquMeg9t9/NKZZFaiMQ/rfx0RU\nAGBfbZTQnD3+3WqFMZvFFtGhv5tFdzJ89fM9ImSbFW/xAnyN2xiN1pj4lEib\noTqPuiC0n5cnga3MUe3RX0tFCBDP1jxYV+H6iptQVdATUkvcCxixV7SZeoHX\ns9djZwz6Oxe7ebVNKRgoVRyYEg64YuDOMGxyEIgSxjLRNHbIVW6vd87XKmV4\nwBTuYkXSQdPKFzrTaqgPlMgwwauvxD2qMzPqFH1g2pbgTgl+AWogNm2fGEk0\n3HWYiZik0KSf8YiVGzP2faUjq7HDj9QruTHWFDPV6wCUHnRk8WLVYU4TRxoW\nCK9X/qTCWAIQPW5JV+ECirsMljHwdSpDtplAscTW8r1eP9MPp4/MNP/6THVv\nI2ZOb06A17DVlOkdXFyUnhT3kBd7Sj6m+5PARa/PBlA8cMQ0bhXloHQzrT7L\nu6Km\r\n=FXQH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b3675bbddb1348b24d38ca5c8f394f73840e128a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-b3675b-kt8kezkk_1630928093021_0.30971099600943797","host":"s3://npm-registry-packages"}},"2.0.4-feature-7dd3d1-kt8mdpez":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-7dd3d1-kt8mdpez","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-7dd3d1-kt8mdpez","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4c8de8b0a3fcb587626bc8e9cb3d85e0fa15b894","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-7dd3d1-kt8mdpez.tgz","fileCount":965,"integrity":"sha512-uUVFiutNVAhH5ye4BDZNekXjrmcpag1op7f8T67aXdyaGk7ELXvcIjCRyWdyhXPZ9PU9FACqUStO6+zx0H68CQ==","signatures":[{"sig":"MEUCIQCo8MGB96eANIuOdcQPtZ+YawgMnlkmCI6ad+0Yua7KhQIgexe+7oIzDt6tvv0o/RwqIwMcRqLeoTU923E3Iqf5ENU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNgmwCRA9TVsSAnZWagAADpcP/0pGHS45cSNNTf5rBn+W\nOihzF02YtUekI+W2xiG3eQsnFtN8wdo4GwnA6hgTfDcNkydAIk1f6Gv0/V9Z\nlSpqcWGX6Gs3ui0UH5FWHs2+2nLa4yF1ho9CQq7y2hzleG5Gdj6D/9jgQVfz\nHvmVv+q49dcdPVP2iqEul/ihe7sACbBOMju0b6RJHidhaa7pqDj9FX5kc6jq\nAOvZbLkINtwP9vAMIC3F5RAWxUtJXt/Fxh/i10y1P21hxl13E3viYvCDJAFH\nVDRB61i1YifkQB93aLm0xic1PO5FRnniVNg5RZ2OOADZTLwBuzq7IgVWM2v0\nhQUIRP/eZA32ZxK9cw6YVmNNbX7NG7XdLX5kOUP2hXAdFbKQsVMGBrx//8H4\nTmlRLmkh2dqncYxRytoRtJA3A2p/4FTuR/Rs1ey2tuX1nBiZTjmT9eaOVIWp\nUqRoapBEXDVqkrqOykX7rfo+jAp1aW7IbLLJa0dAaHqWfu4Td2mZrVY7dCMg\nz+8O0Y+4ra7JbkOovlCvBI27PXuxlkna84qDozo1eZY4ElqBJMNpvQJ5tcI1\n0EGzE9kp7sUbUKSPFCzQhWzH0dJn8MBOHA6Ioi3wNXnDsgtoQJ2Tn89ux9RB\nln2LXs2I2FWVJHHetU9r+BdRD6xBvAQZQtX6lHSWTb64Ieh12pmI5Rtp6/6R\niLfA\r\n=t5Mt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7dd3d141ae1947eefaeaf55ee2274cf00243ef5e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-7dd3d1-kt8mdpez_1630931376591_0.2162888569899235","host":"s3://npm-registry-packages"}},"2.0.4-feature-2086c7-ktcmeyc5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-2086c7-ktcmeyc5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-2086c7-ktcmeyc5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8af245e4d113ef4aac9c43a5aa67b41735a66607","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-2086c7-ktcmeyc5.tgz","fileCount":965,"integrity":"sha512-mkO9Y3GUEiilosdjB3quxWUu9GgnokvRkTq++VIHsnyBP7KO/q1ErNBtZ4kvim44dadWT0jRbtKjTY9VwjSrNg==","signatures":[{"sig":"MEUCIFigsfkjkg2z5id741nLdpbUzTTzpe2qb00mw6dxEmATAiEA0/mNYo9mVZokitEY+PJol24PzrvrR7XB733r+Odx69g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhObq4CRA9TVsSAnZWagAAkyMP/2niCJ0SKKSmKM4y5rpq\nq97sGS635qw+K+6fbPhx2Zt4kP/KtqNUtjD8j/2NI8SVnvGr209wb1SVVCVU\nfV0gUyebb90RlYliWcIo5M43YBiPYQ/05Rs6jHEBCpBeTwCj7/4fEWBc/leH\nlAaOaUtIMShKTbTiP8m7vEMCh/dSvxbITX9+iQl/+7XdFBESRrRFD93Gyza5\n+Bkfjrx9i1gGnpv9oPS0UacIHCJkYunEy/+m7QS9aV+L9BO2AcCBVU3NZSEv\nF/WGfQXYNyTA2YKLHbdAGcpI14orXbwuwlk01xZH45zCeww5OPY9PghTqNNW\noS9vkgUGKoP2jyryIKGRvrN+VSNQ2MwPf56vB6Of0FZjEWION1QKVNZ8rNvo\nIFfvexgiNrQIUecUrywiZ7lzowRhL0W0CwSoLzeNEIZxcN++ULybipM0bVvL\nnfdkaNxdd+gGk8mF1DU2uIWdr0tEk+lDUfO9qUbDunNU3aBlWRC5DhsUn+P7\n17mR3Xst/nvAxTGGWV02EkbF3U9G4Akz4uteIxZy8KmzM/jzKhdagUE+TmmI\nI/1D1YkT8WlbU6QvejO1+senhdZJe4zFSZJ0V3gQcVD3JDsFt+xCFzQQP9lR\nbUUi5sciavJWVx8Up9TUDchjdug1rJRs6GI4/IYslDmuGU4o0pnXfkbtQ/fm\nrEef\r\n=7Xyj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2086c7f2c6efa37494b0d6841a80fa432184fdf4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-2086c7-ktcmeyc5_1631173303930_0.22727553133792666","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-80af79-ktcncxdv":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-80af79-ktcncxdv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-80af79-ktcncxdv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e7e0426deeb49cde29ded2c3fcc46d55d0ed5e9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-80af79-ktcncxdv.tgz","fileCount":965,"integrity":"sha512-ffwXH+OQpBiUeYsO9Q12aDN1LeO3Wf6ON/vtw24zBOpjFEdKeTv9JTJoLyDT5NlV05XAltKAj19w/HPwDGnj7w==","signatures":[{"sig":"MEUCIDhUnag4hf8eDXR6SImZdPpN/WZGsKKksidtlz653dPUAiEA2yLOQFkPR5KmP6tcr+G2kxNTx3GNH7/45IPz2rgvFmk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOcDXCRA9TVsSAnZWagAA684QAIgAp8HTfcGwFJDIluWq\nmNlp3ec64u2IlqEsLDqMNKmEnyxsP2mjp7jutzOdIO9VVYPPYTI4dnQfcngn\nRRAPgrGJKSNqJbXwrYkVPIabbIF7P3cRK3rChhVYsD+T9MnQVx/FaqVm2gf9\nYTp+Ax+eaMqB33ghbaA0jgBFtMN4RxaTKdA92NzEymkGGmgEeCOT5Npl0bLn\nDYsW3w9PffNC5KECdeVWDh9UrLpyPK305ErXeQx7AkW1NDwDoFIAHOkDXdA8\nihzZbjCSPc6zvn0ayGtk6/OvMFknUK0p0ywOvGiqaX2FMoHIh/bAmJAzW6vn\ny/6PwubE6AEeO8gKSJkj1vtGZayDFFgROQ9VP/PlTHhHygNt+3Pb9Fj4IQPf\nefpBgQ9dbFVTWBLqnUZ+6b9WnqEi2156YcllcrzMU0jJRkdprwTc8Ys1vOWK\nuxa/p7p7hbF4rR4SWxaiJKXXhS2ep07Adfx4JunA8CFgtRCt5SzON9MKoHzo\nGetDOYwN3Lsz9haUtzHHVUf9K/Px0VQdZTO+LdC9iHI61Qb1MKdZfSDV9MSW\nmfD7i/0RNaZcfU0zRYBljFcTsu7bBA2Ijwsyerk0O9zUTgw3g58PhlrMaO96\na2Dk3Z8+7yk7zOUsPh+fzy3oHyzWPa3lH9SyxcYt6BYfUBztRbM7hIgiQipT\n4N2w\r\n=SYcz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"80af79956bb9e8ad20398a001b618eea9d03e062","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-80af79-ktcncxdv_1631174871195_0.9745649763727622","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-e95a8c-ktcoadso":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-e95a8c-ktcoadso","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-e95a8c-ktcoadso","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"485b4b6c0bf3bab39ba97271760469d1fdc374d7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-e95a8c-ktcoadso.tgz","fileCount":965,"integrity":"sha512-qKfb6l1AjqyXKXbyia2a8fg1I+xoa1UbOB+0+dFsFivdDUe8Sx3/1MAaQ8CLAtC6UImvXNqhT2z+vCTJFn3Umg==","signatures":[{"sig":"MEUCIQDBzvPefaeSV9Lto9a+TSvgXn5YaVAQ+FLa3HeV/M25YAIgPatydyiW+h6+waQwNp3IcHSSC5ZVJNRXrCOlit91amI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOccKCRA9TVsSAnZWagAAAAkP/Aru1egxEWToinEnIyTA\nXkIBMhLsjuiymMBCu0OEXn0RWtcd2xofD3ZI+wR05swkD5PRBh0NJUE2XZzp\noNMRTDf3XRzFS/godhTLmxI7c2hx+FXP+hwIhOkRqUxjhrVn33/eO34DHA62\nn6QHYXiH7VYFwn5HBsXfoqkxyj/YVqBQ/ptzXinUH7j8zZSqFQTrPcA9AHas\ntOJYOlNgmDZbGFdiU35rZIbvyrjwbMGlHRlzRalD0PsKlyecPt4Uo289mWl3\nK34bgIeSFRjyw8v/t4ZV0Nzqlfs4nGvPgeumNTWBxCDpABJNnHE7B30MJ9ix\nu0s64sNQqAWE6K+WfNI2Lr9TQ87+BPpFJi4gNakCE96zh6yGW0ZCIqzeXUM1\nxuYt9L2V01RUcbHAGtvL4+quQZmJzO9KZLrla8iAqjeSKVImmPhWY0YpXgcX\nqInwp7jXfwHVPg3g7bRYL5cr1WpIGbKZdO3RsZgEaGtbbxUlbdsWp3XIAG/p\nsvZz7zfIQmHIyO7F66GtnwnnuC/Euuy8+MGt8GDGar7Ujg/nLTt7md7VN9ue\nyBL9xdQs7+Pnt96pFdbyVHtW578FsM2i73A9+mKffDU4bqqRQB3DPU753YLD\nfsimEIN9KuWm5QXa4AiLNkSfijkA+97mUNIvROwdLd9LqAmPE1kNMDcrBzG7\nlQ0c\r\n=tM2+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e95a8c8697e1e999f40e0dae8d0c634ffa069496","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-e95a8c-ktcoadso_1631176458673_0.7567957881790597","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-b496a7-ktczf7xr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-b496a7-ktczf7xr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-b496a7-ktczf7xr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9ace06f5f4f0c6bb34b5e39e664b4d3f33facabf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-b496a7-ktczf7xr.tgz","fileCount":965,"integrity":"sha512-uHy1qKTM3Tnc+2dYxrRH28+M96SWhbSYvvcNvC2TRpfRlDxxMaca0Eal5dIVW3oXb+7w+sJXY35XwnYHCEK6Tg==","signatures":[{"sig":"MEUCIQDuZVT2+zBiAquEtwIm7EY17HxOStbKbe2SFxozHkAX4gIgSdfulSd6G3VsLpo0jr4Pr7Ok/HzFpdDmEZ56g9XZhHQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1623005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOhAECRA9TVsSAnZWagAAZiUQAKCdqbn/7GKuNckr8lwF\n2Sk7+cd6qDf4p5H/sImlvmRNy7qRblP76QZkjNkq9BfsqJo5mWJCvJyB6S6v\n4ZFSHxi7vQX/HE4A/sDT/W5ET61VhfnbJmtUHfieLe3icaUf8moU0zLndXRP\nUKFemLiabVqB3cy7jz9JQ0BzxGRfmkBtdLVHR0UJ66MH+T3SM34sgeisEkIw\niRjL4chIdB362kr4iFTNO2IL/VxND63rG2uZEbFB+1GGB5mof/tj+O3vC3zS\nOJdDdgRPETweVLP3hZWoBgIxL5qN4rAYJ7qR4vd7RzDh+akcI7CIvaSO7pKq\n0/jff/ERNNyqlwXwIK4R68wQOmW1TkEPI3s1e27Yx5veb0yQm2JFlfcN/ShK\nKifurrud9Sc4fK8EQIxhL5LVHNIcdQl9VpcK6EniJrYlAcsrLRGshgaPrpZN\nzMaOd3pRZJyhAI9u9YnV0pnJ1CdRgyKjlkvFvn0OohYDnBqu6nQaPN38W1rO\nSWeAKIHJRvcgIVR5pTCsuT3gdA+Ss1QQbjM2LvZqn3NpZfvImLLFjiVbuja3\nNAaFKXb6BUr94sZq61wZatQNN5uCTLY2MvbbDNJOCvcOYHgEooOpLsOfqXK/\nFuuWCeOneXOyxwVUk14OnKXJcVMUU+eyu2lS8e7Mm+T2zgWlUT2L6t2qfxnf\n3Jod\r\n=qA1z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b496a77275ef01ebf59f53c607afa1f284298d50","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-b496a7-ktczf7xr_1631195140647_0.024689917593786692","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-e330d4-ktd0pfij":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-e330d4-ktd0pfij","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-e330d4-ktd0pfij","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"95621a0f627698b9f25f72d7ba69474dbb059583","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-e330d4-ktd0pfij.tgz","fileCount":965,"integrity":"sha512-1rWeSAhVGByIeFn80FA4DnKmkcpx7M4KZMHi2mgPjdSO1zckh/ocj3TkLX5AzGbVMKQffA60XvjJSj/B9uqOTw==","signatures":[{"sig":"MEUCIQDAUYgY8GQc4Dp14oxaK1+Ph3JTAeviHgHIYTzVkOkZWQIgdnj1iLZmIkAnTBqSP8Rs1nHpOkRBqC+LO0p8iAjsfFU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1623033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOhhuCRA9TVsSAnZWagAAlekQAJE2kW/rVOLk+bs4yGAI\nBuseDwWY7MVdCU/l9gdMU2MWOlOm9HBjIxIf62DCPCIsRIj49l7Z6z3Vrsup\nIKQLiUa2lGmy+3S/jPpiziXKbYzSYSvDFf2dlR7p9iLjmXtrMQiRBwznYm+B\nWXxxT/O75UJtFaQkgh5r/RWGJKZv3u5xH1EHn92uZU9F2Z27giMCAPjeBEdp\n+T8pmC/JHPGvZNDJZUeeGjZzCOmFrc+HzKXLZfKE287QRZbWYiiHTsP5w8Kg\nhv4saLWyd8srFwMGcsqe725rq9hGOJsBg3MS5Y9X5vS1pDOlV0nkj2tJpV7k\n1vsdA6aQHswa71EAOWlLlpMGfPWzOYnz3KJ2xVk23fWbcsdO6Lmy/iCjsls8\nx844s2SnJPPplrOn8WnWE0thGfqpFjSLGyhToJOpVa1JJxUyiKC1ceQWthza\n3UhRTaAJbZzkyc3gSzzfgzE927sCrQcwAf9mAt2TxXBxcRu/XXHBDdyU+v+/\nPwCiv6cNcQs7Xq3EJ6bQEPbBiagA+wD5BdUJZyaX02UYYqI173NqfhA/1t/O\nOSSS45wdMfirKFn/IjB7P4oVhXe7Uy/97jl5LVFTPJiKJg+CdH/bbp5S8sRZ\nIzE70DLsrxhDrLxdIGyWDw4JMES8lCRO6S+5zcUPmftvSFWP0w2Xs1Kmz0GB\n66Jc\r\n=AmB5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e330d42762d0d114ec96d769a4162ae8db22f0bb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-e330d4-ktd0pfij_1631197294612_0.19211801503419346","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-158618-ktd0qnvg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-158618-ktd0qnvg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-158618-ktd0qnvg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b107586a7e9c42c9ff2585d4b7d53fff4fab3263","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-158618-ktd0qnvg.tgz","fileCount":965,"integrity":"sha512-sg6clQoCBkE9/bCB9+1eSLaDtiKUov3iY10mGg5SkUunye7SkhSB/0E3U5c1GYD7UAFtb4sxZCjY1ebkk1vTDg==","signatures":[{"sig":"MEUCIQDPrTry1e0I2T8lYDl0lFxj4qMIX7txjFhEc+VJQ52zHQIgKq71ZiGkCX4d97O4q3Ub+e+AJn34ZiunqXfxOn3pRTQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1623024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOhinCRA9TVsSAnZWagAAu4MP/REEmC4IdDT2dpXi5akX\n86tHeYumZvaEjSvUUUqAHsPdfJGKGfPzuYa84nptty1xhsFDHP7QXCZkeEbt\ngzPAUPWN0KTRp/MIzwzsGadw9Quk54rAudQ3RLlyL9yN/WLR5+PTWWGoBliP\nzWdJGvVxwsgmMrBYwet9hWK+MudVSmYYBYRkEVYcPiHT8mcZYhswBK3asCQq\nb2/u9b/3NDsQM8jQVcm+ccUmtJVC0lJBkSR63x0mssswATqmnLK4PRiP1LtT\njDxydGob9hKVSjh13LK7x+BPBDcP80reKbgrnaV9A5I9a55UIAELMm9W1ND9\nCtAtL7tN4KYO+cYcBjLmvt8o5oMsEciqgd4Qul/f4VSXaZKyKCeg3/fOb6BH\nk2+RdHLd5FFJS6qOjAlQlY/rJ0zFs10oE14gGPeTUA0MW7f5KDCIjAkWAVeJ\nLzZ6zEA83RC8QCxhdfwHInoIiw4eU68VI9H01HulDY95/8hb94//RHMNhUXg\nA9lWLJ1emMvVcYnosquXj8FR4Ul4XbETxKLqCg+D5BwpaOUr0Mm9KTCnD0YG\n9ptCggR4SscQsFLOD0PwX4Sdn2xgbEBLou6y0m3+bK8bEzf4lEtuLQkISo8G\nLnQbf/CK1C9LWe3TG3fLPa9n/lpveBEJ0tgmNgiJbCeyFgpk3GVFl1qJRqK1\nfDQL\r\n=ZmCn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1586181c8c451867cc8282603ece30c7401a9f1e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-158618-ktd0qnvg_1631197350982_0.6608993228913227","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-396d99-ktd0r957":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-396d99-ktd0r957","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-396d99-ktd0r957","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"78be07b42d7cc64743681fa42ec74e15fc06490e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-396d99-ktd0r957.tgz","fileCount":965,"integrity":"sha512-TXErAsWXuC4kSNgQsRqm/E315p51wLLgcy0qSUUpkGWHoKDBk/N01wTrCUzVci+EYdTak9NkWp9AuDK1YScK8Q==","signatures":[{"sig":"MEUCIHfpolVuWnuaMV1t7Z6omHXP6kokkRkoiqhxvIkvBdQvAiEAjlwWMnBZys6QNoQq29JnFC9ZclI5mHTX1DJEQf9M3dI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1623030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOhjPCRA9TVsSAnZWagAABy8P+wQzmYDu4n3iPgWptmex\ni5wY2x5jGQNoD2sPDOYq2ayD5QW+y+UdPL+vm+Kpe1eln+KGpFenGam1sOTi\nKaoTMyGKBUOdiYs/4Iy4L4sSPMEcVIZYE4+06e+VWFBWIfpBnEuIqPuQ/Eps\njyvnMtBbwqqKBdd2G1aN077C/V/sDLB7JXUKfvIYTE1SUI48etTZdvJoQuaC\ne8G81Io+u2HjqqwwLuJ8myEIC8epMTuO1IttW+ivb6FRQ8vrO9KdYbwzxJNW\nY6Ata+FGQCHq0fRD3cwyPMlQjEjCHODgzNkeN4VNqp+ydxl36yX/9u6ej/bL\nv/jxdMuCJQ3ftfabCU186UlXSXw3dIyz3I9dKmVVwrsGunUCYmEiKl4JeN3A\nMq+rPhBOzwcEQizQczHIZbXEiXQydYS+j/fpm6BpFeO2K3OlhrWpaw5AhgLm\nYRxxEzHpKOd1G9hegsvWVz6Rn6RQP3iSJWgcQ/L3p7sg45OyzwRldyUsMx8D\nAnEzutM4G1h1C2AyM1+AvV5mCXDHG8csPASAS3/hCo52+KB8XybJxeRpAgGz\ni2xAtL81KJWonqimW/vZIAaAJRfOo9DtBlsTwyMuNBhOz5dvkfcMMCRcXuQy\n6I7FByqTGymke4Wkfc4J9MdbBFKwlvOpKjdgN9dlmU/J1rQf8hqg1Jy5BJEo\n+D5t\r\n=jF3O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"396d99636465d55be73b6e841a04a962a47db972","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-396d99-ktd0r957_1631197390954_0.22797066218277884","host":"s3://npm-registry-packages"}},"2.0.4-hotfix-243bf5-ktd0tuw2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-hotfix-243bf5-ktd0tuw2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-hotfix-243bf5-ktd0tuw2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7822275aa876e1f8be86020c6db2e15296536bcb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-hotfix-243bf5-ktd0tuw2.tgz","fileCount":965,"integrity":"sha512-Z3698nR8ZkvRR0GRNHNzxAeTjZuoHqwBiVjJcznOjZnb3RuQWbGrlLLKJXko21vWdoGSFNckalux/G5IznZfIA==","signatures":[{"sig":"MEQCIEA/Ef50I062X4FD2+Civxv4cOdmx6SWl0pjHe1DLbzhAiAll4/GL0pQxqNPKl1ms4r4DwEIeQGqDszdjcwEwbAAZg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1623024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOhlLCRA9TVsSAnZWagAAUdoQAJdzSkzGJ1Fidfibs0nB\nn+ULOLE+BIMrqD8P5ebADZ569gZ6/kcOjfY/TmT0I4Dpv4ZTQ1USi2wg93cw\nANDiZnUb8qlzx17PUznxGUL/lMzsZhlNfLT7qajDmGqMLdlqeFuSDxa/eKZM\nctVx44jqApIli7mFDJpBnYWrjxag6NW2TFQ64S675/YtDNc6FkVlx1YeVh1U\niTbQ5PRRQuIJpr2tzjtifU8CrRTRLjn7hvQI2qMz/f3Y6dH83yQdzvj5+7Sf\njsmg53lJ5zu41dRRRGgoq98VCKkA4V+RWhVMjgxBwNa9K4wYD7JSksZT14sF\npi6oIRjqmFzjL08ATvPpjnu4w8AoyUITQA1+d8xwyvSsadlf3m5KA+z3ZLRd\nmnWg8zdvsrW14sI29p+JFX2cLWC4mZb0uZvrP0xx+Ih7woRiweIcVE3r4Gkf\niwhUXhrn2qtHmrlptAX3jl3XQ7Hv/u8W8AAt2qL90s5nnCWZukVow1zwLGo8\nJKkC1lGM+CJIU2VADSiBeLaMxfZQFinQ2rNy/z8cMhmvFyDWFBREzXyPBgks\n+H/S0eof58AQyHZhKJRX/xsd+Xm4Y86TDyCpPtE0xZipMItZZ5oNesnKoEmP\nu5LlJF1DVWdFi9RL75EalGvXRv4MwyyDGbbWLZn/17HO1VweVPU5O99SYKkr\nPaoe\r\n=eQP2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"243bf52804da833433c6e163d8dbf4b5ad8d3994","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-hotfix-243bf5-ktd0tuw2_1631197515179_0.3117471701676775","host":"s3://npm-registry-packages"}},"2.0.4-feature-178ab8-ktjtd98n":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-178ab8-ktjtd98n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-178ab8-ktjtd98n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5c9422e7c43ed2ec5f3271f90e2a233cc4574054","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-178ab8-ktjtd98n.tgz","fileCount":975,"integrity":"sha512-i+7F18GqUc9o9byDJbXqrRF35X8NVM7P36pFhGrRAC6GzMsVztekOD6qq706EqUT8ra9qWqeC9n8SxhsjnIBSw==","signatures":[{"sig":"MEYCIQDN22tm5fgwJHsTU9hwWQ4VHqtCQDIQatDDpO0kZDqMvAIhAIbt9xYHr48GrB+KIH+TrqW+LmYrGbxVVCVVFfw9W7IB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQF3DCRA9TVsSAnZWagAAqHcP/1s2s2V0AyUoUCPeW/hm\nysrAvL8PbCxO+PPnaEWiaGLgrcrhCwj9UdGbX6nZZdaOgvBbITTjjG6I3nz0\nyQ/5/5U3K/vxWeYyRZhPrxSuVUG5cLynP/3BeJAUmDHRPs6w5BLFR0XIIwdp\nKBZNDI/uBuqral4EQABjo9mmo9WQ3PP0R4olvEBgKYpLbaTHGRsQ/HOUe9eR\ninXsaYHyYVE4KbqrUVScPyhn7W8vzPN945UesdU9Y+T2lb2A8AWl9pN+dog9\nXfN9+S0wetp+JrCF8E/kiPH+oiF9+/ew/bBQjUdWcFQ+yHdjz8oJaXxVh2wP\nBVbsqBb3LZb3I69R+sIZstg/XG6yGqiKhgVyXIlBDSu6BgtLmjOJs4J8aEYf\n8xpTniBpUxQc6dvV8RGTGG6G05Fa5swQbxeh3b4mE0lYoHJBuBM3qIRouvIX\nkTHxsw6iuX7nM7LxCifkXK8n85E5JO3pnC0lvncEedPk0XK+hXxASgMewYJm\nH7MltEZjQGy5xr1vgBguDTLAXwr8doNq2V5vp9kjds/tjpGUSEBM+bgLGjYr\nW8iSSTglHV+xFU4nu2TRPP20dSGdDRmDFBJbdmUJyqIfb61fjrM4mgWRqepu\nuncyaYvI1GKFwk/ScAboGYsGkvrQsy7e179PQd+MVj44fjygoyLV/C++XPZX\nxHyp\r\n=r/jN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"178ab88e0ca052dced54cab92dd8419216c0803a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-178ab8-ktjtd98n_1631608259119_0.8534485695372551","host":"s3://npm-registry-packages"}},"2.0.4-feature-1f05e3-ktjw3kii":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.4-feature-1f05e3-ktjw3kii","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.4-feature-1f05e3-ktjw3kii","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1fb920fefb582dc8ae9c6784797f5c04d06a668a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.4-feature-1f05e3-ktjw3kii.tgz","fileCount":965,"integrity":"sha512-XdbOxrSHR8aIFQwOZoHQ5kSI68yXI9eiQDoT3CKYlAT865FXfESIHy65QfhLnWdwXsNBNwY2A5EUXWNH3258EA==","signatures":[{"sig":"MEQCIFGzV1AJG1Nq9rn+9+fZCZGacQmQjJAnCdroT/88lc4PAiAOPUKD20GXrV4QHnIxjeoohYhRhBNNr99AzekV0oOnsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQG+iCRA9TVsSAnZWagAAVSkP/1waAYfoSsiLKsOPnNBz\ng+zSYLYHaFpnHUDf1VmzhdUIHL94rPdOMLPVKCbVmUskBzMZKIeZ4DxYEvqK\nwyV4IgWWQgi+gFEVtgwhmWig8VCw0/uWv4xX1d+nYqZhHfbQAYpoXZ56+bCI\nsr7NNLVUoP0K8knYxbzT1NzhVQkJ18t/vsA0jUoTjDfvbywZALrSzLONCh8m\nvkRz2Vg4QKwMxMTxPqhi3aQrI0V1XkL6bqocqh+T2y/J65HPaWluLZCy4Y/B\n78UtVRDTBjAYsA31TI20EYE/xyKmSYJMIgdLpt2d+PsQMpUVsz/H9e0/cSnH\nIFGwn2ajwg4TqKAE1lvjD8I8LRxcLuqmEULv5E+Qaljg6VHmsj2nc750kARD\n/OpQ2enAYfhRl3ms3b0p+PUKJWCh4imet+Q15uwjkgi/yKVCdhL3ol5MO4IV\nKC6ZIUk9bIMk4E54OacR5+dA5jfnqY5IynE1CV+0mTCW+aUEoPUaOMpXYpsH\nuhM1F8A4FOu3ycIGC9oyrZ+AeNqHCRwUdUYg8u0P9WqBYKvPDurgmklfqSEE\nWWdxB2d7G+uSLMQTK9LlpU+6ZmJnLUw3+ZH5rO/CyuUOcxFP+Yq26+wICZFz\nSA8Qw0EzWLHhkZvcccMRKw+M0RLGYFJ2BWQ9ivC9qkom0COrJvm9OqpphqEW\nM/c7\r\n=hJ3s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1f05e3567f659fc10d6c73fd9ea8b263277683ff","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.4-feature-1f05e3-ktjw3kii_1631612833968_0.6334321009945687","host":"s3://npm-registry-packages"}},"2.1.0-feature-fd742d-ktjw8vr2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-fd742d-ktjw8vr2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-fd742d-ktjw8vr2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b0d2f9c532774cc754a2c61336eee18a11ed7d90","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-fd742d-ktjw8vr2.tgz","fileCount":965,"integrity":"sha512-HyH7ijb6q+kaRc41DaJInRNvvJEnvRWSHw06N26Kk0PrGEsFntCxAKQRy/39iJtNNFZrbavRcVFDi1OGPL30PQ==","signatures":[{"sig":"MEQCIHs8zYYQyCXm8nmcWbDpJ3ilHEDZnqMyEtkV3k9f1mGUAiAzOsFOo6aHL2pDLA/6eexWy5088VN63O4AYlTFe/WQDA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQHCOCRA9TVsSAnZWagAAIYIP/3+m7KATaFWR/CdKEI/d\nMslnvD1EnIozvEGWPZocfwTBClr1WJ7HbP1wuVcD3sfC1pPaNUHkFpr4Ocoz\nMH7TFEbZMGVrdub7vPNYUB3jFge8LuAYRSjQMIMZJI/PevJBLRzeLAAgIqF2\nU00aJKMragGerq6J/Qsxt21p+eZH7+4F8o0FVkELLVXo2hUEj8FknR2Uqzl9\nyYedLB34gOxBD2wbOBCgWS9orLRthgCgtfPeugO3RGdEQTTUBbh1W+hT7xk4\n7txzk7mmHmJPPnHYGndokvD/TKgz54dQuOiHHtjkL0BhJCyYnw9TDDoWrUI2\nWw6daRorLa+XRvKd1us/jcr0i0NZnqdK0PSRMHuO44XGiT9gAghRa5DkemxO\nSoc7ZpTxD2P5nYRu2ItTjKYnMbYRm+HCaDDWuPZ4TtRrRIMikAz3VvdcLj1l\ni9HlALFhkYq++8KGX35YS0KYD3+dk/L/5wq6msN1RED3kbX1Up915Rbk92rS\nXcVcYkXBaFiIK/DLGp2QmCTUXb3Kk7eei+tg5uqqZxXi7qm2H8x89B8pYyeG\nWJuV5kmE9j39cxvLxL7jSmU3dRiBLKde+N2A7UjNTv3k1kgFso8VaE5W3Aqh\n48op03Fnm0vQ8ySe0CngWICoOtbN2KpwUnM+5Pv1DEQN1+5LUTIo7/tRHP05\n4Fcd\r\n=j30V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fd742df714a0e5315619ae10530bc9f6ec1db343","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-fd742d-ktjw8vr2_1631613069925_0.9840110596704579","host":"s3://npm-registry-packages"}},"2.1.0-feature-0507a0-ktjwag29":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-0507a0-ktjwag29","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-0507a0-ktjwag29","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e5ee244f83d656a96171b8a54a5b2f4d561c07d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-0507a0-ktjwag29.tgz","fileCount":975,"integrity":"sha512-4rfSfvK6MKsrCjUCedfqcNFpfIBk3od7haq6yfUhAGbhvp+ghSan5dX6p6J6O/kCt/tOSROc6WJaM7nVqbjt5g==","signatures":[{"sig":"MEQCIEbj3wkpI2xH7xkyHggAPlrS/pQNzRtvwH/JzqJlkDocAiApWY7DwLxbtJl8LoUaO7DBxitgUYMdbaN7GLZMwHhFug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQHDTCRA9TVsSAnZWagAAGgsP/A3MdlG83QWBXw6AL8uX\nuPElPoxCzPKKK8PoSeTDQ14/iBJpjJ9oyELFtizrAUsaIH8QQ2dYc+GUnIT9\nDIAhBwGd52hr2EVu1taRJkGm9oFLgYrm74R4bMaRrUMlOPfZd4wj9GJQS9tv\nx/9NBS/yKkw3nq54bD0G8MohwzZWid4aUd2jAwrir9sH+lEblvE5Pr+1IAA6\ngUP4YlCpZ5u4ULuaisp2sRvVgYR2gK/rFvOsDTXwdWyT7uSu60dKobF8M3DS\nxHKTDkwpAskZ+Fc3bBRTA2gPTkUSI1RYjNG5eFK53RY/UvU142UcabwcVyI9\nDqpQFrlIRsb5xMi2J2eWkPB/rhILGjc+dhdqeLiY99CHQaDMci29wpxDIflL\nyeXPlyO6NRBBwgbEsjZI2mjdKHph2vte8SBQufCL94XHMXJEU2YLQ/1tPIxT\n1/fQ50kI3N2YIqLm3jmb7UKHzn4rtfvwayqniUf4T2td7Z32oqPT7zkjbCrJ\nDitWlFylT1ZVzXyNEChzab5VatcJBZ7SKrCyGwyBPuEtQp2YMMikqFncGb4C\n/tis3OdeDC1G3I8OZuph+OlrJeAx9Ka3KzGLVqsXYxb4FxyzOcM8tfTdULd2\nnxEVITu8zKcFo5CeNJvICXccm0/k8ZEOtN2bZEWmErFsIgtbq5DFpedYZlPF\nh8ry\r\n=TO94\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0507a0127be2a50e9cdf535487bdbee53bddbcfa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-0507a0-ktjwag29_1631613139571_0.35859109469608264","host":"s3://npm-registry-packages"}},"2.1.0-feature-a82f2f-ktjwaqvw":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-a82f2f-ktjwaqvw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-a82f2f-ktjwaqvw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"27434d726dce06d7b7fc711d9fb64108f47dcd85","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-a82f2f-ktjwaqvw.tgz","fileCount":965,"integrity":"sha512-r4ViVHbYTrjremlhMCuvHMDekG3UOoFOukm2mlzKOB8mT7Pb+S+veThgknokZhVm0StcPbWhZIOfkwvcjtMmnA==","signatures":[{"sig":"MEQCIEfUdME1GL5ihwErY1EXe1mORSG7qu2y0adlGmguEV6bAiAgUowuluhL+0kaihzUi9czsmncdBzC3P4aN0R/uGw32A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQHDhCRA9TVsSAnZWagAAua4P/iC+0vQFUviB/xsMxdBn\ngHap8TrhCBUmzSRt0wY5R2mGzw2uuRQtzsvPwm4gBnMDSeplxYTnABxJbCgi\nxGjAzOl9/WCwgSMz5F9UHd8s0rGh0IXSAGFgd9XXjm3soNP2NGyk+WRm6WIa\n1DdnaZhP4IpKmC+QmXCrNNvyon9vfvDlc6FOL4F1gEn2qJfOOI9XOXAM2mE1\n27sb2uHDTCtB2xayNGrnqiXnG8Qkgv0ZRo5B7VhfCDNzKteQ3PMjwxCAkFV2\nPO98GFr8LnMDiVLVc0bdNVU666fUThDGpy6ZjgM8Q5cN0YiHDpV0T5PrIXVO\nupqoY/IPKkB7l7hQspx1GZ0seGQ2mo4fPNbQ6MpqxknL8eyzqMl9Ez6aZ4Yc\nfPTIUdqy0L2FlkTJl8MR6zVSz8tufMAH7wKQpIbQXChSoKId8W3DhdcNX3fA\nErZnyRFIjlINAz1Sn1ULU+wsJWbjYII2hnDbJyhTsuPdnCZrXAnke6ujlJmN\n4W4dhOvgqqo2FPMfxxMypoYQWGKvz5tsDqNlVHLwTX104jhabJrNkwZPwOo1\n5keNpQkbXc+F51Ue8UzOfxmqQjIyGi19NefdIn//0vButDKr/IWjQ+KE8aH0\nzFB2wWSwpJlw6Y+Dd2WNrcf5BJN/84yPpHwPaFPRT+JJzczPODiL/ac7Qkw1\n0JVX\r\n=CeGg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a82f2f2bf1dd8e8e7741a30647fb3d8890445354","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-a82f2f-ktjwaqvw_1631613153687_0.7534825648256767","host":"s3://npm-registry-packages"}},"2.1.0-feature-75ebf3-ktjwb0uf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-75ebf3-ktjwb0uf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-75ebf3-ktjwb0uf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"999a6e2c5867c39e6c42f7f608b47b77b3cc02da","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-75ebf3-ktjwb0uf.tgz","fileCount":965,"integrity":"sha512-5wah/wZKpbhR0frdsAm2A4/QFHYCg8xmzc53M/xtlK5vgalH08XPHh1t3c2MPV6EN2p978k4YJqmcVUX6qaXiw==","signatures":[{"sig":"MEQCIF+Wl2QADayIoArpXJyUJo6/fMKW9SwUb61bNh9mUhrVAiAx3rFX7osOsuVoTJqGv5Ch5SaONp4+sWlY+qu8th7YSQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQHEFCRA9TVsSAnZWagAA0NMQAJLrjni+Aw2f0TSXcFBz\nYHf/9nHeZHL73Dt0ioXCpAeF25xZc7OPfFbreCt/RPrEiWI8YT4Z14fMjOkg\nFYULS276h/S1u5yG68fNhVxEgDDnhcXYwQJ3YSlstUXDkrLjOIATXYEK8XLj\npD4+rwxG+t2ugYJ0IQInZyNuBcHaolwFRODVbMqvx3H5ZRB1qXPbkBw3Eq8N\n4KUorVtGduOTRJnCRi7CA0j0wXu9qlcVRoVCMqmcezvi1r5l0k7mKuPOCB/m\nocWnOTgZ+YosHJ5kwX6r1ZnGuajZcN3zBCQ4yNsQce4mVtYB6PXCosVr9n4K\nsEU5pc2S/09lXmSQe1xOA96Tn/Tte3EJZhy+/Wa38riFJH5RmNl0Qdt7hkDc\n/PZjtCErzuAAtpE4FHfW43qoJRzV2EQR0CNOCgFUr0xEXaVBSjeGozuh89iV\nQlTpcQqWg9I5F98JG6qeIEg2xMXM3ivkvhvRxGGRGPYXVbQlaQybThCL4dqq\nF6Nl8kLGMYkSBR7gtMFvHjOpJfmKnsZ3NXCcJHrl28lDNBq7qY+04XXTtRsr\nAn9CnHStRzD2y5cvck49ge8VqdS3lRRT4UcHdP8+7MzdL1sEM5JGqfm3Ceoi\ntwE7ksDF3YIrCSVCXDV6of/vEe/7FJErqby2d4LLIG91FGqrgqnoca7W559u\nGxsi\r\n=XUwo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"75ebf3b7bdeede3dacc0a30143571199f27157b5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-75ebf3-ktjwb0uf_1631613189112_0.3837975219619405","host":"s3://npm-registry-packages"}},"2.1.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8a0d46f757e5f94e7d43aed0472f14db5f43e09b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-alpha.1.tgz","fileCount":965,"integrity":"sha512-/4pbWAmUeOm3VX+QZmhH8CsWsUenbWlglQJ+gW8BUniEU8mP7VC6EM0kUZIKax89i5rnAcYfxVEJhWx8J1h3gw==","signatures":[{"sig":"MEQCICwRUZdYMmQlM31ItA90QptnDO5V37ts4QvcrzVNjQMwAiBV4LxkrIxph/7Vmmar+rq67x330z7YYIE0O4uBo5/Ejw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1624930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKOaCRA9TVsSAnZWagAAzdIQAKClDH3gZjAkTbIx445G\ngsqXvTkG/anBI6QbxvHNJaoOT8cPdS3H5UaZhdor6IDV8KHyyKXZTeew8WZp\ne9m9nIyZmDrOxkoIm9S9kCSsnAaz8CFaAHOKGAz3nwD4vUGbBhwywn1eCEFG\n96Fr5s+mUy3256tjLYxj3CSz5hgBu/OJIIK5sdgxY5OLe5fms+W4/ZO+SxcA\n/7utv4YGW5me1WZId23Zy8OrK4eaTGqGblqh3S9DOSpsA7yCmHSaLcmQdTnx\nj3yOZb5hJPxzhC5eGKN3Y2N41KMGJg7P96PHC4tjLNwzOHkzVIT2sgJZsg66\nXjRmOzoozRPBuTfcV7PYje6R3NPXdLgdMoleaD2KJyuMrWoTWy42RUJqXXBN\neMjSI/Llc+KoCCmjm5OR4E57ElLauiaNzfGzFNKdprcyU3Wb8OM1U3f3/MJe\ndXDkTpwdTKMbG844Se1tWjBKVyATR0xG+aF8TbBRQJvFur9RyTLmkEaPcOwe\nM00FH1gKjYMoKnd8RLGk0Icqcwd74FBizeNYKpmm1Md3ah4O2cRrvqLbtrJG\ny04Htfoqqgh26+ctTqowWg/uOQx3MLfCsm7oPsjM56BTXR7r43I2gKO1eaS/\n9cX1QaD6L0ebSuCd62I8u3Tg0JkKxsXsJilaYfY5WWa3CswMqcex6GHpJ6UA\nU6Qc\r\n=xjOQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7059462c27fc5d73132abdfe4c79dc4ad6f4a7f1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-alpha.1_1631626137967_0.7137768002812692","host":"s3://npm-registry-packages"}},"2.1.0-feature-89dacf-ktk44eje":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-89dacf-ktk44eje","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-89dacf-ktk44eje","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f50c22562b3656d5a1185a6b972fa577937189bb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-89dacf-ktk44eje.tgz","fileCount":975,"integrity":"sha512-MFTbJP7B4yRH7vG1EunGpzzF96BsNHKfDff7ocCF7fBrJxdhEclR/fK6G448eSYTig4G8lCTubsIYf+Tuzj01g==","signatures":[{"sig":"MEUCIFiTLenqmy7n4lGpxMku5qrxK9cKdPk+KOBnuCRBvP7EAiEA93Hsc1DYWY020VDQ0y5wcslw7pkI5JsMpuukRevF350=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1630143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKQ2CRA9TVsSAnZWagAAf3UP/0ySBoQzTJ/3kjwX8AyF\nsWaj6JTnTBDKaEquFcS22J3RgV8hPoxljFjJLq75UEOtGXioS7cdwNup2rdp\nY+ON9ZuMWLABVLN6VxfRwvXVejrhFhZL/YsKy5+vpheMFJAXIr0mhi13ZSTY\n4pxxxpOMaQYNqN5iBHQjBqyIEWYcb2js68COwaW+oeXyBfsjV/I8ja/c5TWT\nAmirDO+zCZlQXFQt1qHGwekFrzdZkD7fx/YPwg9J8/rxx26apgMCdNqy1WY5\nd9jcMRtKcGCFDykTbCzkrbWUgSK4OeEZLP7ZkZefkq4xLTTYh76OFyMReVmj\nndqiK65ySyValWsaOgB8F6oPmSrDJwl0ALbW4/3Fy/AiUyH5I0dZiWbHq9F+\nrNFfiij5UJX1PyE8B5Xukk/ZFx4VYLnXt6s3ZzqPVfjtIsZmkcu5lXYtTZ96\nHFsmT0Xzluep289nEiBJMEOvNkrN5dXHnrmG/4BGMdQLPk8ueM+rx7VYZ7q2\nOHoXeu/IPZdkqisuwZbIBDo3ANWZVuqRkgfr4AdE47D/0aEcnqih5aiAaQi/\n6NtQjBtp4SlHavpEw1kUUfCd2TfuCS7x+8gEgv1Rd6lQdQXaz5nt4/aNkQzf\ncya+hdoQr9kOpUgfkTniIk5Gh3t01gBtw9FR3I8RA7oRfbBVxe14kczT0vDa\njfd9\r\n=ELbM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"89dacf9e6cf449273a27c3447ed6c522c4d8515c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-89dacf-ktk44eje_1631626294437_0.9709620955186644","host":"s3://npm-registry-packages"}},"2.1.0-feature-6bc4a6-ktk44nuu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-6bc4a6-ktk44nuu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-6bc4a6-ktk44nuu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c931fbf14f2aed5433719fb34dff626352a50513","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-6bc4a6-ktk44nuu.tgz","fileCount":965,"integrity":"sha512-JyWRoq7sXwSvhqtGH7y+IwAQ2vOON6APC9/0nfGQeGwH0V+LQ1VbUUdNaqEq03Ab2gX1bawrq1FSEUokbOjmMw==","signatures":[{"sig":"MEQCIDp2Vx9C4jtmLFpoWo2m6eaWAHX/AKiv6SzOCdTwcRsWAiAukpzDBocHbfkoxBTQx/yRMfl1VDRsX8dS3joISOriFg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKQ/CRA9TVsSAnZWagAAYX8QAJiCIgSaTPBf7Uzwf1iz\nkRXqWInchINDRUA2dXDJj/mY3q5vquBS8jOxbu37VyWnFF51nWXrgRTyRvJ+\n1uVzimu2ClSPbUig9Z93Bsfa5rAXuG1XPLP2J/8sU1lMlErMR/BqO7lh1Z9E\nY1OV0RiBYgXoKGT3FHIgzQJ0MgvgSA2J5GUWiAtsaWkHlylMKXxIH3gl9ILI\n7iZOFD278QE7ANGxRrmJiN1Gn/8dJ6px3KQeM4TIu9EQTTBeseJzVBD5g1NF\nfXFx+xAl4aivCQEARWdahmSHBgsa318gHJdP9TJHqstZxOLD2lpopSnVKPjB\nHa2fF6RtCw7v+a9dYF3192ZBLzm8ZSmnb/IGX3iy+DNnJAiS8q1LyNAPC6XG\npcje8AoUremP65Ray8ILKKzoBz9Mgtr/zqBg7yZvhJciATvXiB82l9Zln0AD\nkEljfEwgQZNDl7DAnKgGPEulHMo8Llj8jQ8ykeCukV2dRPmNhzBbyjEdAP37\n9wbwh0g0bavZpX6f/6WLmKAekjieqOjOfhzqrHhMCvUtAxsDtceNPv5Kx+41\nrijUi6GHstHpnSkSEZ3QIgQlPsr8o15WJFcvnDSNVl+3dRmwwIT1ZkMQ0M4q\nuKhYZ/n3SPPh0g/OsmxyXnkRbgFtKZLwvRjFK/nf4GJPPz0bY3Anz7hAaXfb\nOops\r\n=Vneb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6bc4a622542ee68a9c0f23576d593ef034b4287a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-6bc4a6-ktk44nuu_1631626303786_0.5912542489206942","host":"s3://npm-registry-packages"}},"2.1.0-feature-29311a-ktk4596m":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-29311a-ktk4596m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-29311a-ktk4596m","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"68d4a88dce8e14564b2672573dba8c303eb3bbf6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-29311a-ktk4596m.tgz","fileCount":965,"integrity":"sha512-j9nvxqF7LsC7eByC3MkaVQytySkmZ0vAU8p6YePIyUAXNEM7IFhIXFPoZ3HzXW6jtzsHG7sX/DcfFCv2T1sqTQ==","signatures":[{"sig":"MEUCIQCOcvBNBBfWi/J/j5PIghm9OG/km4PV31KxR0qibC7EnAIgKaZNpGNoRGM1wf4EVmaxYPgQP5B7+bADWIMY9ad74xs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626823,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKRxCRA9TVsSAnZWagAAxCAP/jrLPD9akCeF+FnQaZd3\ndunT+7xGTO/coErdVqI09uvYF9YBAjchxuGhT4R9nJxsNK1/tfaTm+DAtyhI\nw8sGRi+XkUwaC8RCerB58wr4WSHNAIi4JPEDEkJNyrPtcYvyA87e9rXdr/XQ\n8f2cHkl4+xoFgbB6uvJOEIn/kSqAwBogacc1V6yCVOyqBh5IZwWqYFS5QZiF\n4/5ku8jtyPs4hkqIoxQ5lMyrRcN6eylHg0LC7kncsnQ9LrU5qk9sRG/VArv/\nqbWGpZlXS1TmoIre4sVZgDdULTcJGF44tant1fE/LLGRBOIMJzBK0Vk0FC7B\nYYAm+08NyL58MzPdCqX8qGgz870oN0yogk+OTmZbQmgJ6AonJaCtbCsjyDvz\nvyyQaqgl5uUh1guLYt/1PhxU6rpEaDhbXA4aBxPUs5guVBj+v4o6Ris9Wk2C\nmRl+1BeO6fOyenVvfhCCTja2WG4Ps7fDT2GPcyGK/pMhjNsQAmssVEMKDABR\nWHTiKC0Lw6g63THSr3EXi6tGwSm5sGl4cmvLgcO9tBI3KfunZxMyHTXZ08Dn\ncVe18qaH2TJIoFPFH8o4PLMwFP5NzOW45PFk25cHrybPF/ibfm3WpIlBvHuy\nFUYnkLQ5TUt6p/TwfHTed3oGR00MA4A6c9yWqXncmYNai+7yv63Xi1ENEaXM\nuCey\r\n=RTQ2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"29311acca9b3bd281ebac4fa2d20f0ec515362b1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-29311a-ktk4596m_1631626353667_0.5847991543254514","host":"s3://npm-registry-packages"}},"2.0.5-hotfix-4da853-ktk4xz6q":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.5-hotfix-4da853-ktk4xz6q","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.5-hotfix-4da853-ktk4xz6q","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aeb490bf1e13e9c0195063f3ff46abd89d1ae28c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.5-hotfix-4da853-ktk4xz6q.tgz","fileCount":965,"integrity":"sha512-4Gip5JG6Xt5BDp4FN7Z5yKSRZTMXnyTB6hoALFXDE1Qrbsfd81nFgIdUEeA69I//lRhty6vi8QVOH10v5rY8Hg==","signatures":[{"sig":"MEUCIGdOfIHOjMIvoIHS+eFCm9mWuHrzpmoQawlxUKmZAKamAiEAlsdooJodnaxlTUlQVE4HOkTjFMufj6dAFoDlqBNM+WY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKmrCRA9TVsSAnZWagAA1FoP+wWmYA5y2nfJFAGUUrlL\n0Vp3opmn/6ib1MwRBayvjAPM/0RP6CXIXEeEHHt5okZeZiI3B2P0Tf5n4IpI\nCCNtDthfzI4vw7p1yzjGzEodsKEWlNqSO94L3gW+VOpAI95bZOgmcP03jvMA\nQKMFiZG4iCPD7vOVxzor/zzqvTETmJw3O5bzkcnUkPl3HlaRs5/K2vnMMYbZ\n4Nk2x9zDVuKhnplj/byE82isoEWVk83UeO1wXHLcd6fYews0vRiXi40tUJ7W\nvp4cuGuTCQvZZEpeFPJDIw62u1uCG5pPlRfE+BZ54sL1WRmN/Ne7Njx8JsJ9\nlkY2Da1UeKDgbAqfykbDLj70j6ZZklF+9YO8RpR6OT4j2LS/RnTd0xPvW1FL\nxDpo8jV86wiYcBQfLQgHDJSmj5CsDns/c1cbojiXzP7gsN2tO3uJPCkmX7hu\nG8s3qpc9dlW0oNlNC+xqciisHdsi+acvgOMb2Z69aJb8dvSVZtaNVWru9R8Q\ndkjKekSlZdn+AbDFq9CP3BUAznT10jdcrldnf/QXezHZq2EpHsSZBwXzCibk\n5T0Jvmmhw2eArRetQMmzInY/MhmAViXhhfhzAAttPMch/4BYcFQ3T57RZ1Rq\nS4mh9aJNZYYP0UpZZIjqmimY+zsoD9Dky/d8a09zr9rJGYOnV2gWYAVF0yeP\nlevR\r\n=izWD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4da85360cf703ae66b751ced71d2e489ec7e3cd2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.5-hotfix-4da853-ktk4xz6q_1631627691438_0.5902500240460122","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d4c5e4ce03f7a6779f51d63903a5920a8d91c506","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.5.tgz","fileCount":965,"integrity":"sha512-cCygnnoqPzMWpJOVAZUVbQSfqIFK4SuC6BGcKTDJ1RvNOjqyBXwgsSPryg27S1yq5O/E5g6wMlD61gr87PMeHw==","signatures":[{"sig":"MEYCIQCVqxPi//LP6lwPSfxVAX2fd9yIhUp/dJOnchDLIAVfAwIhAJPmibmgNuKFlLnAE9fZP79EKr//sBSFbsZLiGl+lox3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKozCRA9TVsSAnZWagAAJg0QAINwQ2WNjxJj5e6RBmuu\nKoZ2WH9WZyz8tX5QVTZfF0UrGQq55r33ax+BVqPdXg6fAL/ds0ASgECBMfWW\nfFtlhyYomlsIF9yq8p/WXk0a6q0GnbJkiHB53WZhAkoP8k+DcN874Dc6ucwH\nA7LSHyfkAolPg4obf+4yH+F5414xoEENvB6+ajmOUGEYzAfVq1CEehNcNB2u\nAgUcgw10FpC0TIS/DTWNIPVnYglB8/PdmihkpxM9YkDDePjkqCV8SJl7c/rp\nwt4XQms63mdfvKUGMEpPEQfHPp9oAqSZfFXxQoG14SSt4I25Xi7MYDAvE9Hf\nTexuP6trXtZ/3VAbHtIafiABI/lr790Vh3fnbuA4d1H3JfVWSrx7oySc+ePx\n62txNmJ3D82Ig8dtvFljh2LU66d0ySMGHpQirIjeK1jWuaDSlsoDcTKM03Gb\nIuRRG+B+RSgNDZPY5O9Rnz9JYQiGwPfHsLcUa9le0+8FvVbeY4YGDCDhM+/3\nxaU2eLs0atMaIR3O4H/ShBkJNpnIkm32alTYLRyndCPOxIf/9AnCJxCRs66m\nc5Ky4gmW3bpdVNWlLdzdzM12DLn88wsOFNeDD7dgIXiUVY7DpANU8kq9nZEm\nJzK2LbUmNJ0s3LrS9ZW+EMvsRGM+cxu92jkl78n0DKs09WZwALx5KUxUqWT9\npafN\r\n=QY50\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"4c750ea25092a4200faaf8a2ccf7d0281cc8ca9c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.5_1631627827490_0.10214547422373044","host":"s3://npm-registry-packages"}},"2.0.5-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.5-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.5-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f18e4f2b69ffec0376ff1c5c044cde0a5759014d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.5-beta.1.tgz","fileCount":965,"integrity":"sha512-GizNFWNJ+GxBIJy7+8edOH3R7dOP0l4F9E+JurpAXNWBPJGEz8K/62ls7wSb4wC45EtTQPXIWTRFttMuEs/Rcg==","signatures":[{"sig":"MEUCIQCy2Amt2VvaUzhRM2RKo8pRYkekv40bLjbwj+OxMWLgCQIgZTxFtXbun2/aG0FnDBQrg2nePuf+QLItzqusKzMh4OY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKuUCRA9TVsSAnZWagAAf3wP/1vozW/jkyJTuCILrZ3h\nUdHKCWeYhYNI1NXmFcgN+SzzU3giA3HjC4BPE+3+sftlm2oKDcFW8AaUguxF\nM6bsyXO/1MH0QF8NAT0MYZbryQP4JATV9NMN02FOfCQ5+Pku9QyxJcPpHwDc\neAIyXUUzbPP2YWshqFW2FNNNUYzJpv5bS6RVasvU/9ya+ogWsJTCXCK6Axqo\niRZ+Jo+juwYQ45LpFbqFiHy8re9QM53YVP7GyWHhK3vNlmFSZXfBQ1aJm2kL\nihF/tZdNZlbuOH/MYHw16HY1czKfuZpVDfcmJsQ8u2tQyXpCPF/oAOlaJ1Ts\nJ2Gv9JQa1iJaniraMVwB8SS9nv81C1KCfsF1SnAu+dgiZh9ZsJ/IUyFjd7Od\n8Xff/vZ/jOP50VOhpkKpB5WnzFONiGL6pFiyWuIBK2LWk/Y/LNrzV1MNVyh2\nSqP6k9P7DEUGqrzNpC7LJSKcuWz88PEe9Py8t65jshtILlOrYtP3SV+4IKog\nB3bLOUU6X1rVxlA6RxoNGxK7LtWchVYpB7CflE7YB27a84OrI2EyJqENMqsk\nHU7fZXkuEyzoFvplOkKDsViuo7LC840g2FIR4Nn0maFxaDccdIbReDb87u+M\nwUey/UHD9c/JHonITug6enRiWQbVNSZ/WsMOFU9piy+2ci27glVKpQux88nJ\n2ZRM\r\n=Zw8P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c2ea4ba945a9e4318aa44770bbd4191c734097f8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.5-beta.1_1631628180667_0.08552939626231382","host":"s3://npm-registry-packages"}},"2.1.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"70ed03db6d733aec7a3355c7a8a55ddeb0fb5cf1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-alpha.2.tgz","fileCount":965,"integrity":"sha512-4+ZKNEfheyXMrWAJ/IUpuzopKOu9xF4oxftw55rMo3KKmZ5YhW2WTposeUR39BSXowcIigYTgCaCY0jElb5ekg==","signatures":[{"sig":"MEYCIQClsWe6Yr99Nw9EYxufQ/ytOzhIaZGIG+VfFB8OsgZMdgIhAIRkC6ewTXNtr2IxgwSN/Oqy8+zDrURAfYXD4GgjK3Qb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQKwTCRA9TVsSAnZWagAABO0QAIEUY0T3GZhRV7rt7/R5\njYq8jcWedhlwBayVkeIjr8aFeyVdU95y3dxt45pGy5Tt3VW8ovtmPCl3ft5u\nhbsBj4liAADUqCAS+vLWfKMYX3HDfbH0ViOd5+qSOpqzGiFktL+K3BwbRw3F\nZZ4KP6c2CACmS6Nr1q3115K1ZFStbD8Y3HXvoXISYeB1XWF2hNIWmO6Wdt3X\nNPf8E1x+rYmR7MMOdoG7wupTssdO1izEY5qAvSXTegUlCxnDUH4dwZdjBSM4\nwFRlc4a6Nb0/LiT0K44qFYp3SAZ7/UuBG4hPlRrC/n1RXfxvyF1CCZlgD+t2\nefN2d50S5OpuIVdNqB9WzkBGHw0CThGD27/vp8bkg3WSYBqwb0zD1yAKKR8S\nokEhWThdLObWS+Yurkm5u6fIQelbh8RQ/ebWUWwb1zyqVT6zJXup8p6tMUxI\nf27KSu0xG9/bl5cd3LV+lryO6kjTJt58Xy0MOj9eflTspsl+pNywB2ibji8z\nVu/bs4lU4YxcAWvFghNwauNxjGXZwVosTUSI7QvvaJ7z6ClzwIL511s4wvAO\nVRApnuC5pHTIulmK+vHtil+en0cdu6HttNLYFhgDkbPQh9whfYdbJwiEDZK4\nA0ni5zClUhx8p3ZQsJUpkV9SnS0XTb+lLIGca5yLlXELoqGA/wN9PtwVLxGr\nTCVE\r\n=55jA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"56713c4a3508bc2d5af9bd99c1769bf7a48543e5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-alpha.2_1631628306902_0.37183234637075735","host":"s3://npm-registry-packages"}},"2.1.0-feature-851976-ktk7yeql":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-851976-ktk7yeql","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-851976-ktk7yeql","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dcd6fcb0877690f49245aa09628b29224eed1022","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-851976-ktk7yeql.tgz","fileCount":965,"integrity":"sha512-ocJS1LoZWgNCfECUJydPLAUsIvWDUzVobB6ektuL/VSpHyDZHKan7Yf5SccN5ov0+ob46kB1Jr7MVKS5A1wTxg==","signatures":[{"sig":"MEYCIQCOFLOcEZIAljWaVhoyae7L2aqeSpEIxLCDOECYSOK7igIhAMBYApdQOGw1JxrQviTRTK+J1fszwq18cQ+uPbXHn7tk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626605,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQL1pCRA9TVsSAnZWagAA+9MP/3RwjrvkkQllO2K+njta\npp9ZZlzfQnexpp2oUmVrngZl3l5PyV7BTfAymaTIctNTSt98/hgQ9i8RfzlX\njkQqMCA8mG1aQ+L6IbUmeSPuDmUHbjSjaT55wHUl3L9t7svUwZ7SzXez1L3V\npwbEEyOMVm3GILeFB8L7oOKtO3ysbJPhjSxdtqDP57puhqjDYDQlfE/c+mRr\ne2jMqXsuAGWZVK2aG8ykRcLYSk86WAMBdWfYaWkfbqhP02H5aZ6JIIxR+Bsc\nf2cnzkR7b/u8fwYm3aJCpcZfCNbCl+XBv4De80lOYRvIgPNyQp6VLl6XuRmO\nCK1eDXSMn/p1JbkAyL41w1lk68iZIBVyBSuRFXI2rdBwAqLRp3HTzS4aLUNj\nQ+EbPFDk/g6W7T394chDvF7ftlIwwkecgFSATusMlk81Ae3hUh4WmmblGgPG\nTNEajwWKNSghY1Ce1pMCGA/1Dl+LrftwMWve292p4s5qsrtu5/AHPPIkd3CI\nO9hCEM4/e4DG5tI292PAQHMTYiA0XuAq+kWNC8gZ0YNrVse0veUoFqieYNqO\nv4ErfahoGhz5QC5v+1l2SdBri5GZXiBFRfsB4A3FbCUPUT919+NVbF6FPhh8\n0JArVQZkYq2fcprbEbMc+1dlzpEdbG0DnS9YIUtXPvobhP3nFm6+Cw+taxMz\nCK0Q\r\n=LnHr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"851976281ec94e2b313f4225acceea5c1212cfd4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-851976-ktk7yeql_1631632745104_0.9426773882734143","host":"s3://npm-registry-packages"}},"2.1.0-feature-ed5068-ktk80t0n":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-ed5068-ktk80t0n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-ed5068-ktk80t0n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2c1b8378239329e7044492103bfd8fcb103e0743","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-ed5068-ktk80t0n.tgz","fileCount":975,"integrity":"sha512-NZ+XBZsG+u5INwGFFaehkg1y+AzGj0INWwYhEU2fsTcuDdOxYOjm4ae64i39ulYf+hpIOu+X0nMOzrXnSktM4w==","signatures":[{"sig":"MEUCIH5Rvk12dyDNYCOGslMr6Oxv+F4d9tlQpAtREC0q79rjAiEA9ROuBboSbxaoaH+EqTzcyfyn2sAR4n3o1t9/qIM1zJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1630633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQL3NCRA9TVsSAnZWagAAsOgP/1xaGLr4QIWTiH8Odfhj\nibbS++SYSHz6CVZzLcJcagwV0ypRLGJcdzQXdrtyCIaG+kfVNwyoB6+we6wZ\nac4SeSFeqy07EHX5+pSjIwhP5fvy5Z9IlaR9wf8LGx9XvhBtdKL41KRC052A\n8h+qTfDMaCILe4ytClqYx4ZdreB24DF4rwFOafqOmbyuhMAwt4jnfR0jhGI2\njMLf5L1aWee9KParUgg57uhMYDqVZ0EDPTiQKO4MVMUbEeqRTHIwQreWxoC6\n4rX9XaLi8h/7uzK2KAKXZO9KAc/x9qXlr3VPqvZtJZXLp8Q+LynS75mkktl8\naMQBUIiwRS4ms84F976tHJjhczTasgVb6M716Q3bpl1OZlYZ5GjBXhPpHzg6\nqUohVuAxPDbRzTcR9+1N0LEJy5uP1ZnfOVIzGYaTwGuJdyvo1Y79aATxPATv\nD/HWt9BbZQAEMoDwVbjtM1yeFHwwsHpBeyxqOT7psvNfItubmG55vBKOMizN\nm54qJiu7fmsTkr8c9OMe70Q/bTWn9fqGm70jistHUhT0pW7uNhTB9zdQThMS\nviHkdYKz9uRJ1AtChtnBP6sMb5bt/ktLZfuohGLX/aqTZw2Ld9aWFPppOB6p\ncjaNuOmeTjboa3skZRAKKOF0sLvGe0f7s5kCX9Jzwb6X/NvDl/pSOr5/ITna\nj22B\r\n=G5E5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ed506889587dad4977f4e6fd506d36d92ebb7740","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-ed5068-ktk80t0n_1631632845739_0.20386716029113083","host":"s3://npm-registry-packages"}},"2.1.0-feature-64c25d-ktk813ni":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-64c25d-ktk813ni","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-64c25d-ktk813ni","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2d1279d4d0a5bfa8226253eec445a4173339bf10","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-64c25d-ktk813ni.tgz","fileCount":965,"integrity":"sha512-ZkBsTLxABnjG4BK6pi32lf8Ja3uUErJynOcJ/GcvBqPmrIFwHoxWCG7f6PhnsnC+rrujgVV1yv+r8lOB037CPA==","signatures":[{"sig":"MEQCIHDysvoRj+OdH+hXBKhZHCuOxBwow8tZjQCq1Y8QmIe3AiBim8VnPP5HPOkqLwuZXVIqUIxQ5WIhK4z4tyS/JE1CVQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQL3vCRA9TVsSAnZWagAAFVQP/1acGSeW92YNbR0umKE6\nDKBkHFZ61D4Thjn7C1w7+0R/Y3neCyOhDlHPYFVwwarfEx7mcGGuA6cGdxUt\nSj98m3VbLreMh9yK3Zz5zrwSvu4v4qDMYwTG6Usjl/C8zfeOXI5KA19RVn5U\nAKxj83RCTeuedcLI40y0PywtUwal8somFLEAhsNAbUG8lEKNG79j2PnkfghA\niXLPrgk+EJLfQ9dCyfTM8KwTg6aEfJaSOuQCPr9DNuCit+pJaEAKg5Sw3JYF\nYW8tXAzpDs8ytr1GJ2Wc+vjJ5fYtc4GK28YvmBTtcLia9wayBGiBF7PuRNlK\nak6tULWhccmM5jAB85TmWjAPiMd/MZu+FWrx4Ukr1Pz1ZMkHBgdc40LWfhR/\nXKhGDuA2EWz+2x8GFuw0lloUuuqNrm5U8kE3mOFye6YJzOSIhxJn5DcJnFn4\n2yqpsVmULGUi8wGVO7xX+vVpICpQqobzE1+Ogj6zba2EVqc3N8qD6+yF1oul\nG7RCTTtXDC8SPI6p/X9rNJE0p5gSV4zTigWrHbaDn9PgZ8VbFoGelL8R/g0t\nwm265F7pfjSQA0HwhlnGXFnNvLnD8wFhkOReYM4sbpVIUKbLEtpxvY/nBmll\nkjPQ2iDaGLaip73zAf5lGifPUXedKIONanwcyLHzNTBbXi0riXnqHBjyAP6q\nF13b\r\n=Hz9t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"64c25d7c2321d3594ab6580b7a3dbaec6f85d85e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-64c25d-ktk813ni_1631632879288_0.5193061818820999","host":"s3://npm-registry-packages"}},"2.1.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dff570d6514362b2b2dd1a744485b7c62c1df890","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-alpha.3.tgz","fileCount":965,"integrity":"sha512-f8id1fNm74Tgl6kwS6gY0dtOMTBXMLBuLFO8594l4ZUNh0OFJao0si8HfbShoy1iRO7esuJo8VRZhu/UDVLGiw==","signatures":[{"sig":"MEUCIQDZ+1zNjJPkFSu3RTv4HM5YSqC/v7R8rfVPCnOytNUJ8wIgGD+v+hC8jxoEAdP4AFtQTIxd1sMAOyqdm9i7CwMkdIA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQccLCRA9TVsSAnZWagAAyyoP/jIOR+4a29q37/3NHgC2\nBv/sp4WLb3GoeWS61kgHf+atuT/QlKKibylnUlJ+kM532dK/ujV7243jmute\njwtHwRbn5vss84+qF4u1lehQS+zgZ3q7neDr5M1oT7qQ127+UzDBv9NSgxxD\nK0dgXv62BJBrzwARUDAAmlrzNDRH9A/si7I1UQ1Qee8Z7h6jlpgBDjyw7W7I\nODNmfC/lyZ00ljLlByd7JOJnC+9XLb58BwWY90iQAfN0gesKwATDFn01iz18\ne0pjLRmNUJguKHuV8DC8YbhXHwfs+mGQlCWz/AAhcwxFv+I4SMpRQds25R/z\n2Eh0yn/ST2IbieswQO8oq1VlzWn6deTsdq2PhA0cYZOcCT4GygkdWmohwTxl\nf4Ld/s443uDWq4nLcLDqUBqhlkQoPiOqIYMRdVhG8i41wEYI6pAIoYyBJhL8\nJBoNQzvi03AYur+NoonarGQJWf4bZkS+OoKoQbK4wWiHHFypKrmhMziL3VR5\n4jYHXfPYnJmGTSrCc/7oHZ7u2bXxm9NW4VpSUy8CMkR+ecCaqm7qWoqyRavK\nx9+3W4NTX54M5KrxdKkIdnUUBH6GBRP5I2OFfHXyTjULuz77cjSb0+sKZmdg\nLy8gChgF1bgji768lUlMPtO1Y2lT+arDSLLvHSIIjlpKwokIh6AjzKlpu8MS\nMpsG\r\n=7xJr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dd13dd7a3485663474b4d188a5bf5d744e8f7712","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-alpha.3_1631700747612_0.6434783923178897","host":"s3://npm-registry-packages"}},"2.1.0-feature-f2b136-ktlcscco":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-f2b136-ktlcscco","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-f2b136-ktlcscco","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c267af4f3b537dae7603ddb7bcab115223463bef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-f2b136-ktlcscco.tgz","fileCount":975,"integrity":"sha512-0lBV8XXHjK/4QMpQSrzHXt5tU77peWB0VmtRijnt9Y3Xg97uOIT1vm1VpPlLXSc6xrUJMhGRNS7MDp9vthyyAg==","signatures":[{"sig":"MEUCIBW6GMUAfU/LKMvFYdnlyNk7DeVWDv+uVCHRKiTTWKOpAiEAsLFqdVEck1Egt4GC398O7YlguoX6s2MCvcT7bmUKHeI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQclXCRA9TVsSAnZWagAA0+MP/0krkbbnhEZq4DpP3R6T\noN17fjHBEdG1AeZVSkXsSLYaQoonC6aWnM353z9USqKmTpQtgGC4aQDcYa0q\nYgCUZXiz9nh7jUY+8blAO900AzE0OV8BgGFbwwFIgcs2sF6fbqFO6WkSnLZF\nQAfgNYVe7xcSoGUE7L3rmDTvt+O5iu26BZXj86iDOx161lr1s41oMg+rgAlK\nj+NRWu6pSRm7Jw+LqbHd/RlwLNOmx+oigsljNdgcw1S+BiLaM6lRWnhwyAE/\n5CykZA9x8Sy0ULor2xfICpb/lJtt7L9dezMiIzTTk+IG9OqHxVXOTzPQ5WrX\nubhnovfg7OX2PLiToiax7Zt5kYSnUZtQIY36wzxvq3gx3nOaFOP8jbsy5xbh\ncVZK6ykEcVcg5BM0OO2OrMI01VcAmWa1JnTtXEDGnHtTM0YbAKCS2+3QHOja\nr99klik6z08Ui1C0zofih8feO/QwoIs4rabiK9ZViycxhvfUXTHJesKNqSDC\nBJtUCTU5IgliiJl4XKKJyJw1wlp4L+6gL1c449RXP581ZmiV7szvxORAVAKS\nh2+wXaANDVc6WxH4cG1mjPe2ZwmyWiFL5sxeK5egCoZP+/xLfrwlnBneXKwJ\nG9HxrYyQHeErmibTn2crHA/oc/WDdDIClLAklGotV0NAbYjoHVRAvtpbe/j+\nCI5I\r\n=Fkdt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f2b136dbbaab19e025fba282fc7d992d4eb4a8bb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-f2b136-ktlcscco_1631701334983_0.07152184751579682","host":"s3://npm-registry-packages"}},"2.1.0-feature-d1af5b-ktlcshwc":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-d1af5b-ktlcshwc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-d1af5b-ktlcshwc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7a925eac6f4b663d1ed9f96b807c92a8bf4de38a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-d1af5b-ktlcshwc.tgz","fileCount":965,"integrity":"sha512-FK+uZW+llpmFdi1dsTlupg5yg9Mh2XlsdBc8dsNuDW7rJZ8KTKoPGZxx3l40L/ITpzXkwUYOLHWo85NI0e5pEg==","signatures":[{"sig":"MEQCIApH5FZIbY4AkCFDGwHHi3QX/q54TwNlxIpPtgQqgWf2AiATczEA0JaKShRJAAsZccnbAerwqSc1zfGYLDrzGyn8AQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQclbCRA9TVsSAnZWagAAFuQQAJyYNQOamWF8SUMxzp0O\n0I5ol/z1RRQPYHWu85jekMbGmWRK/+UdmGWC2W7/49WVw5fz87BCT+aWOFMD\nHPOggD6k3klp1n2Pl1GwVWSP/d++I9bMS5w16CmqieKVFDSKQqeS/DP4+V8p\n7aPeiqRBuq+26DCvR8HOSTykvx+P6VB/IxIAn3KGraXJDgp554Iyf00+eoO4\nfmWlAmOJQ2UcJInXQDzmZARb3AVQA84g+JY3VWmW2GwvmnaEroh8slnB3ZUL\nVass3RqGGH7H7zLYalg8odhj2Sx91anPCPT7uhPXdpJmiedSQjySMr5wiyVe\nquREgp8FqYl3oBp0HlslgQIfDymF4K0izPGZSJ3oJL9b9ITL7pdK/1PEv8l/\nUz65d0A73janwvSmfoVN7WJiL5zzxkycOTMHUQIlSXro9Q0Dh2csIKVbuD/P\nTPSl0Dp7HQc6ieXGuyn4GyyK88tx08IFN83yrQAArBPkek3aZytt2mWDd/2j\nIEEUe+okR7kibRo6NmznmOLWQBRRY7MLvstvDQAI0TtMdZgamJqBaXeKGBpD\nuj46LOqIb+QA9Z4JJxmLlszOP4BknF29p7/94C8TrFLJSHdPo8clfsL1Gm6B\nD8ywJnIuUeIUCscKe+lGsERpl6fI9aqym/OrJ/lB11MCoX9m/LcalG1t+d0c\nZgZV\r\n=Rda8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d1af5b8875089794532acae3deebec1661f43ff1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-d1af5b-ktlcshwc_1631701339370_0.733340204354318","host":"s3://npm-registry-packages"}},"2.1.0-feature-d8844b-kttyv5es":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-d8844b-kttyv5es","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-d8844b-kttyv5es","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f05b676c510df081b89db9801a1eead677e40421","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-d8844b-kttyv5es.tgz","fileCount":970,"integrity":"sha512-9ZIlRwSpDE26b1fknsTDT1NiJW8Mjw8S5knzmG91QAWvCYMInxYRbrfS9gN9kV/sJZIPcxrZaaEfyp/5K0go1Q==","signatures":[{"sig":"MEUCIClA3J5tPthbFUowyoxKccI9wuDs9wpr/VzmaG3KE+J4AiEA07Q9rgGaMD363wXT5gihBcqetVcRi5eljLnAsggbJ3Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628124},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d8844bd644fee4198d9d0d444f651910c8efe1dc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-d8844b-kttyv5es_1632222145622_0.970479914819925","host":"s3://npm-registry-packages"}},"2.1.0-feature-6afc01-ktu44qv6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-6afc01-ktu44qv6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-6afc01-ktu44qv6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fe0b7532867770d1b9da0078823b71886f25e09e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-6afc01-ktu44qv6.tgz","fileCount":970,"integrity":"sha512-YS0xjrNZqrUJYXEOTv0GIGR2HpVRNi2F+xlwqo/T7PgIekgBFMLKCUFSwVUCF5ilxREF1kYGrephDV126sAD1g==","signatures":[{"sig":"MEUCIDIKoVd17Roa3hx0DV8fqvwKp/jmovu9yrNjjqKsh1rZAiEA1nmEfIX6piK/qAS3vVDgon1EgRo25Z+raYpIcr3tBVA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628124},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6afc01ca82601750189b781fc366373b9f7b92ab","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-6afc01-ktu44qv6_1632230989880_0.6437420506912952","host":"s3://npm-registry-packages"}},"2.0.2-feature-32746d-ktv6mg3r":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.2-feature-32746d-ktv6mg3r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.2-feature-32746d-ktv6mg3r","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9b16d6bff91b19fadde4cfe34bed6049562efe64","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.2-feature-32746d-ktv6mg3r.tgz","fileCount":965,"integrity":"sha512-5ykMT1oklPtwHEf9Z33SH1VWigYwoZp5oFQCC/q996Xq7AljO+2qSI6vGX07cz4csZIPZV8ai45P96HDjyF6cA==","signatures":[{"sig":"MEUCIFROoReFi491ghVwkF078YrL8HP3VFJcN1A24huxVcSBAiEAt2BxkLPhMI/RKHi5odYXoJ4Jky6GuV3JgkX0usrlPU4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1622177},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"32746dac5c71e73cac9b250f4d8f80864620a5a7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.2-feature-32746d-ktv6mg3r_1632295621247_0.9156149935724283","host":"s3://npm-registry-packages"}},"2.1.0-feature-2ba035-ktv86ll4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-2ba035-ktv86ll4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-2ba035-ktv86ll4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"71d3181c91397784d4e238bcd94b7161c7caaf27","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-2ba035-ktv86ll4.tgz","fileCount":970,"integrity":"sha512-O/nZV0txh1d14O3YA4c33UAPjB+I+aUMjD7tUl0Se4ikXdo7CM+a+hFDb1fzJCYV6WxYdyURm96qRqGtNDmVTg==","signatures":[{"sig":"MEUCIHY1/o1rf0Wvj5piMTT+HNR3sCA4xptOWfc6PZtv3e4rAiEA4divSHNbBgTKhSdkcZSpK3zX7BYTZD0TKZhad33ee3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628126},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2ba035e4b2b07c297b74c06ee9bb11dd4e2e9544","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-2ba035-ktv86ll4_1632298260950_0.30961431194356215","host":"s3://npm-registry-packages"}},"2.1.0-feature-6140df-ktvevqva":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-6140df-ktvevqva","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-6140df-ktvevqva","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7654b2dfbd5bb985b44deb01f2c2f9ccd3ec0d66","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-6140df-ktvevqva.tgz","fileCount":960,"integrity":"sha512-xCc8Z4ZgSvId+D024WyGAE9YpV8X6yn4koS/u4rW5a6a9tW1hC27eDKK8lUvz8RrTuqT+/L1rpsr4PVi5606OQ==","signatures":[{"sig":"MEQCIFYGQAX/FRtijgu9ItwKZa8GbC9GRIVmCZQ/Dg7F2lFOAiAXEIGHr86yeJrGQfwguoqXwVm3p943yVqWwA4mWMs0XQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627620},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6140df6da4fe166078b0fa7b00d92ed263af7d81","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-6140df-ktvevqva_1632309523412_0.2849544798920298","host":"s3://npm-registry-packages"}},"2.1.0-feature-9b9717-ktvfmdqo":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-9b9717-ktvfmdqo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-9b9717-ktvfmdqo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"963ccc2f35f5de9195a055e3a8979d684f9ef2bf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-9b9717-ktvfmdqo.tgz","fileCount":960,"integrity":"sha512-EOkx8MgbwCuqa6wdOTk4NSyixxQHHxJQKIssC6XOQJvd4Fji/GXa/Y3uxscLebhFWTpJlDv8lfudRI7J2mH8Kw==","signatures":[{"sig":"MEYCIQDL2INtHuS5hSPvC2jDSQK2SSVNwf7yNIP1Hnxkffn/9wIhAJtBEYPMuTwe7m/vRMmK8jKO9IlA+3i478LOpqhj2aLT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628387},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9b97174fcd9a22258e3d8f0773aacd3baf7e0c7e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-9b9717-ktvfmdqo_1632310747393_0.059478808557431595","host":"s3://npm-registry-packages"}},"2.1.0-feature-10c815-ktvg3to5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-10c815-ktvg3to5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-10c815-ktvg3to5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8130311c2995a09148f0d75ff586cccf8f220b6f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-10c815-ktvg3to5.tgz","fileCount":960,"integrity":"sha512-uqJvW88e0SIDj8LiGh0Wd2oDcMs0ByUR51R3vLxzJWmJCk3saLTWYLcUBGfM2Mq2q/drtHgKD3grHlPEk74Sig==","signatures":[{"sig":"MEUCIB5wVbmM10oPTjdQ1dzgr2/sLQAZ4djNRB9vRy+Q/qsYAiEAl3NRDrBzJsG/Z7mfuc/E+aG0ysIAf7Jhc59wB2WnfBA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628452},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"10c8155955192eb40fc5302fb157ec83fa936367","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-10c815-ktvg3to5_1632311561612_0.5607558630959839","host":"s3://npm-registry-packages"}},"2.1.0-feature-7e656b-ktvgwpdx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-7e656b-ktvgwpdx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-7e656b-ktvgwpdx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"12823ef7555000cdd9e6cd6e05facbe641126e8d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-7e656b-ktvgwpdx.tgz","fileCount":960,"integrity":"sha512-QSkYdcWDL6BlmthfjoPM58B8dK4nWs0kbnAdSdpF04xjbt0WTxjZFDQxbPzbtV2YKwUnf2EcG71jDSSiqW8UCg==","signatures":[{"sig":"MEQCID8tiVJNSMHdw0mAcK+25IZzicIh3JPR9boVM56oKsIsAiAVbMVbSVYH6PeWxb5wnsF0vjp5/B/fspjI/gJILRni4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628484},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7e656b53c7da00719e185030f2695d29f8e83bff","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-7e656b-ktvgwpdx_1632312914980_0.5336281215832668","host":"s3://npm-registry-packages"}},"2.1.0-feature-1edf18-ktvhkzk6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-1edf18-ktvhkzk6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-1edf18-ktvhkzk6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"be17523b7af0f94ad187198cf51821f7f86755b3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-1edf18-ktvhkzk6.tgz","fileCount":960,"integrity":"sha512-Uset4IFvxCWz91bxeFVmxdKKl1xBZIIR8B1c4MgjXDSRFRlI+tV56i9F9lOmXV/ec/L2z2IYrbgC8b7z4lAAdA==","signatures":[{"sig":"MEUCIQDdTvS00H3pseeqWGgYjw21bhupfxUUABqBEJ8jarSFIwIgbT8SsEuv1Hl1AQdag+7kXm4xZdujmCZ6bwpGRcYB+tI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628472},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1edf18b04fe61ac45310a68b5d73428b3c74d383","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-1edf18-ktvhkzk6_1632314029721_0.4569939482612213","host":"s3://npm-registry-packages"}},"2.1.0-feature-a4e8f5-ktvidxz5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-a4e8f5-ktvidxz5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-a4e8f5-ktvidxz5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"efda7db54dcdc3abaf22dbdf839d28b74359d7ce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-a4e8f5-ktvidxz5.tgz","fileCount":960,"integrity":"sha512-gZoT/7nBYg15vMBU2oEBf5+7XHYJv2wSRZ3qmr39HS8vdB6DwbmqvoRAVMQGqIiJQIxJ98OY24oS8/REX6RK3w==","signatures":[{"sig":"MEUCIDitxV1WlgIPZt+QYYeRz4eHyTEk++rHyL68b5+dboGRAiEA0sNZdMPM+wKFGwEFIKE0o88NywWWx9O2QoFbHQmlwdo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628451},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a4e8f5ff722bd40097783029ae705f703222d804","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-a4e8f5-ktvidxz5_1632315391592_0.5256485402497697","host":"s3://npm-registry-packages"}},"2.1.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0cb7613a4da8245604cac0002ad3e6412bf90176","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-alpha.4.tgz","fileCount":960,"integrity":"sha512-+xBEZ0+Xn5WGa3uWnKE+Wq56/sArQ3L4lRussyMxmtD955dbO4EdOyv6DFadq0DVmnwSyTfxHG5qulF00kmBlA==","signatures":[{"sig":"MEYCIQCBruWHSXkCSqmbEJBbfKNOSUGt0ldScd6N+jH0AvlV1wIhAKJ/WCsuYFDIQrOFpCHptkaj0Ubdu16V54QqObrZksUC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628435},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f6f42052ddb968a5f6851393d4a7073c76c0d1de","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-alpha.4_1632391735559_0.6492544198222121","host":"s3://npm-registry-packages"}},"2.1.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fe1b61f7453875f6d84d88b3dbb66f968f65494f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-beta.1.tgz","fileCount":960,"integrity":"sha512-bg8mND2Mm8FQqwX2NI/B/9OwvU6s3CSGDy4XzJLiKh80zwB1Y1SAh4mavw3EIajLf9Zi6QA/KVgLGhWDgOBHHg==","signatures":[{"sig":"MEUCIHFyWIaEQmk7zsMgls0rhYlCJ/m3ZENmbhv07FOD9Kj7AiEAlkTIWsyyEKhTvv8HFxxxUmn9MVr2Wn35wJp7XwmxnDU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628434},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6a714855c71ad2b4ebdd031123d9c0d5d5762bd4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.17.6","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-beta.1_1632392021447_0.14371258222636207","host":"s3://npm-registry-packages"}},"2.1.0-feature-79ab82-ku73f3h1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-79ab82-ku73f3h1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-79ab82-ku73f3h1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b038f990011f85eda74d831ff2db8be5ee424150","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-79ab82-ku73f3h1.tgz","fileCount":970,"integrity":"sha512-r+dZYm4fFoqo5XbMDd0ojTPZdS5wSIn63+mjuOk1BkghsQQpg1BtnCd1OPWhPxX31ScKb2kt+z425uXsES99IA==","signatures":[{"sig":"MEUCIQCvQLBcqPK75rVVsgSaFiX308BCbCvKiMXPpPbxk2L/bwIgBxxWgaPlOFwKsQi7N7gJrWH3l2vBZAaUTSrzq99la00=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633648},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"79ab82c7df543a0463be3a603b4ab99e44e2e217","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-79ab82-ku73f3h1_1633015837668_0.8961106634516347","host":"s3://npm-registry-packages"}},"2.1.0-feature-da90f1-ku73fo5u":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-da90f1-ku73fo5u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-da90f1-ku73fo5u","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"413389e3e6455c2c4eea568472c62b23e89d2b02","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-da90f1-ku73fo5u.tgz","fileCount":960,"integrity":"sha512-Mon/XBIBl39fHA+GGNwZnDUtSDdAfmwFwRlzI0k5TwBKJagznYX2htTewovE7F5FsxTZmhOZcxazEXkMyWYu7Q==","signatures":[{"sig":"MEQCIDkrWAfpnq1vxWelP0jIT+BA/flWSpg/wEd1k0lqjqQoAiAM2yYTC8p2/bamPNQFcOSklKEWikwVzccXsymlVj60VA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1630328},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"da90f1e9c07cc29202a2867ecab0569129094daa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-da90f1-ku73fo5u_1633015885189_0.23473040186298344","host":"s3://npm-registry-packages"}},"2.0.6-release-9727d0-kv0urhmu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-release-9727d0-kv0urhmu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-release-9727d0-kv0urhmu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"044523c2ca6de4db7f4cff36953336c95407b9da","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-release-9727d0-kv0urhmu.tgz","fileCount":965,"integrity":"sha512-TSmcF1bflJ1e/I1Y3SnvLEEfjDgGx9fBWOwHDykZ4fbNOp5NCmD9JWaQmTHKVfoPKNFksCPjb28fJ2rPxp7YUA==","signatures":[{"sig":"MEYCIQDrhYNfexi9au7Ux9v5zqOZqu0akRXjV1xpM4ZmAZouyAIhAJQEo+K8XKzOKctevoZnSYi1F2UecVhN/uZBxIx5psdH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1625285},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9727d05945f219854e8aa0c2f50e136a7b03781a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-release-9727d0-kv0urhmu_1634815299094_0.9821531536993131","host":"s3://npm-registry-packages"}},"2.0.6-hotfix-089aa1-kv0uz7ua":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-hotfix-089aa1-kv0uz7ua","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-hotfix-089aa1-kv0uz7ua","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"76f0b06e89765173185f787152d140cb82d578b5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-hotfix-089aa1-kv0uz7ua.tgz","fileCount":965,"integrity":"sha512-qkqrRW5aS0Cf1mm/8T7J34m86cPO73lBec3nMiEt52pxIpsR3AdBpE53wDtgzuK7iHf1V0Qs96gAKtyMMBpTrA==","signatures":[{"sig":"MEUCIQCjfX0gS+D6Np0VZL2axwG1NkMigGA05wu4W9eCcMakPgIgGBxZ0now6bOqQCS90eGLZHdqko6WAX2nOhcSZRAlL3Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626612},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"089aa1cd7d805a1b3e5d18ac0065d758208d8d13","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-hotfix-089aa1-kv0uz7ua_1634815670207_0.9856348919051139","host":"s3://npm-registry-packages"}},"2.0.6-release-180c88-kv15rzvf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-release-180c88-kv15rzvf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-release-180c88-kv15rzvf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a8a9334f444de45fbe094bbf675ebb86820f862d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-release-180c88-kv15rzvf.tgz","fileCount":965,"integrity":"sha512-FhX2sq5ROcVQCQ3WsvsUtt6Q89Tb+vBYmef3KCThxvDlv633gsagxT8Dvhxgli5OJ7B1HW3g0VFH0ncmPmswfw==","signatures":[{"sig":"MEQCIGlwITvDWujhOo1tIXUC/Vt+zG+7S7bGfHaF51Ovn61pAiAh/ziACGl+3n++waalcqgZcIaRHewOpH9VCda0c42sag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626613},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"180c883f258db94f90b24c8b6c40c3bf6007efb8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-release-180c88-kv15rzvf_1634833785017_0.5924462896967189","host":"s3://npm-registry-packages"}},"2.0.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6336f858000b70f169e15abb276f4ef34b83bb06","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6.tgz","fileCount":965,"integrity":"sha512-vC3phcVcu+08pKxODNu+z9ZrKJH8fiSkbB3vIOkuFlEVJfVRhRpyKzcvsJo/8Ug95bexgM4LexUj9YkIEQLEZQ==","signatures":[{"sig":"MEUCIER2DOUSWoiJgM8KoFsejJ6XRvSOB5BDKjW5R8jRDlZMAiEAhhEgXGu9cx4pDQwuKTsHrzbZbJI1ddpoOBT1ig5VTuY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626589},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"b871a16a3ee01754993cb430eab99e611420f635","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6_1634833870909_0.9999884181552574","host":"s3://npm-registry-packages"}},"2.1.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d7f0814ddd4d0148f59bc14664a81afe7b70c3c3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-beta.2.tgz","fileCount":960,"integrity":"sha512-jcspNWHK2JoiL0yv4Z9ogc49CxwYI4tImO9j3lyedcdWzKo72qhVFdmDhqrydEnPYagZvjg0IaCrxXzRiA+H2A==","signatures":[{"sig":"MEYCIQDcpHqWU/ZR00cOby4z0zu7PghiGpnQYjeNOcnBaEjCcAIhAKTPADHIXd7wIUm4BjoClp+2yjueBcaz2HAcF9Mdhmp0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629762},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"36dd02e415571e3c3beac299d8b654fd08dbf2f4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-beta.2_1634833940443_0.9544795485222701","host":"s3://npm-registry-packages"}},"2.1.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e6ecede67f2cd344ef521cebc8c6d339e70bba2f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-alpha.5.tgz","fileCount":960,"integrity":"sha512-JFBSdocptHWw8xdzzN+NoFENPGqg+OKojNz6GkQiYbVpysvoZ+5lwqZBxNEqcW0yGKEfKliWjl2vyvqv+Wzgmg==","signatures":[{"sig":"MEUCIGLPAZCJOZTMXjrvYrgxCXAVHzF5ZXdmF1YWlcR2oHrzAiEAnwkbu5Jgi7CnPiZ27I4V3vtGBmUPSmHhxD9GD5YTqgA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629763},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"33ce90d6db3d43009e6a7b435d54bf130623e38a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-alpha.5_1634833957640_0.14914821618625762","host":"s3://npm-registry-packages"}},"2.1.0-feature-dca0d5-kv6hl6ex":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-dca0d5-kv6hl6ex","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-dca0d5-kv6hl6ex","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"98b01a76a712d792fa2268c6748fcf2828a410d1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-dca0d5-kv6hl6ex.tgz","fileCount":960,"integrity":"sha512-+vQsjkqHVDiQgnwZT/iNOMhHuMGOByvyk454HKlov5VT5mWjqWcYF/42bZHiWQH6v/+2qJerbI23ULN5EDXLow==","signatures":[{"sig":"MEYCIQC+obonWZT3CCYhi8Pcc9JaG2fRxQTxWnWVqbmVEf31/gIhAOmTbdj0LvOfcqD8Q/lRykLsw3Ygpuah1FrRiv91DcZd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629959},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dca0d5201060485455db376b86e3e3ff32bf265f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-dca0d5-kv6hl6ex_1635155963269_0.9495641185240051","host":"s3://npm-registry-packages"}},"2.1.0-feature-b4c260-kv6jzxgk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-b4c260-kv6jzxgk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-b4c260-kv6jzxgk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0668041f0ca7276a4f79de5835f708b211c19664","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-b4c260-kv6jzxgk.tgz","fileCount":960,"integrity":"sha512-5QI1XV6ct27dJHNJLlphl68odI/4n1R+E55XeEikwFvaij94sgG4b5TqOOvvZI0hra7IK4Xi++G8e+VX3kmjfQ==","signatures":[{"sig":"MEQCIAVxN1ADnQ13ypVLsuC5netFaBgfV9BtuPJ91BJPTpN4AiBx8Zj9D/Hle3dS+zjhlPvpnFHxXdD2dpK5pboSuh9qBw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629958},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b4c2603b90637b7c171fd44ff2d680d4b160089b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-b4c260-kv6jzxgk_1635160023287_0.09764199173182364","host":"s3://npm-registry-packages"}},"2.1.0-feature-002ed0-kv6k8xup":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-002ed0-kv6k8xup","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-002ed0-kv6k8xup","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"01bc026df7807032f60dccf2062c9ff363b65852","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-002ed0-kv6k8xup.tgz","fileCount":960,"integrity":"sha512-FE1DTOqjCmvmSl367geqOni9UyT1C2EWpdJ4Jwb2iV+sSBi1+RKFyKU8AUvq+ScdD5DRRkciF8pqRnDrQyMM0A==","signatures":[{"sig":"MEUCIQCeLA8Rfw8hg2bhIugg06A5xRTg8mZOHgufAL6kURBB0QIgTyPGc07xc4AuztfFR6JzVhO+Z19JsZfhIdYdz4juas4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629958},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"002ed070c9e6fa67af9e987008f5b45c8295822a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-002ed0-kv6k8xup_1635160422009_0.6677004726474858","host":"s3://npm-registry-packages"}},"2.1.0-feature-e93ded-kv7vnaqn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-e93ded-kv7vnaqn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-e93ded-kv7vnaqn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"35eaa09213498c03685d790183b56eac253863e3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-e93ded-kv7vnaqn.tgz","fileCount":960,"integrity":"sha512-ifcQXzJipsgwzy8pKxAdhSgNymk7BH91wyjXr6ECK2vL+xRDCdEWMRdbQpGGWFA+P76xoOI+WN6X0B57trOWKA==","signatures":[{"sig":"MEQCIDE4shXJKO/eEHZUuHSEDvbpeGAJO+Rrw9Alb5u3G+gnAiBvuwoQuqNlyS01tT67ejTBiDXsvt35aTsNeSakpJJErg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629937},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e93ded8938902a69359504df10c92352e66e1c35","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-e93ded-kv7vnaqn_1635240030378_0.056571433196094034","host":"s3://npm-registry-packages"}},"2.1.0-feature-d7716b-kv7vo5b4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-d7716b-kv7vo5b4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-d7716b-kv7vo5b4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"36ec58508caf7afa415bbec326b84a3b6ca50a6d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-d7716b-kv7vo5b4.tgz","fileCount":960,"integrity":"sha512-eTKIVxdr0Ohu3QIpaqacUkKcxfonKsJO3x1iAPIcyOOSLZ2Ntp4jHlnUWVAt2g0+E+Sy+rR9n4hviLn8JU/qyA==","signatures":[{"sig":"MEUCIQDzipIRudn1IMdAZJUBaSA87NqhkvkCcbrdhRbaTmZg4AIgffh6+eu/2GVHHav+TP7GNH/gRQgDjoSCWEi5mOq1ua4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629928},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d7716b7026af98e1a9b76135eed50aba2738c741","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-d7716b-kv7vo5b4_1635240090413_0.2262850163535859","host":"s3://npm-registry-packages"}},"2.0.6-feature-eb8de7-kv7w4puy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-feature-eb8de7-kv7w4puy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-feature-eb8de7-kv7w4puy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d66ac02c611d96e097cb3e077f3c1edaa2a1c77c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-feature-eb8de7-kv7w4puy.tgz","fileCount":965,"integrity":"sha512-2Zk3VZN51EeJe2Gz0oLTPEtiW3lwo25Z9livmI/e/cs6Ijlqzz3etB3p25SIUukcKVpUWKrpqqAGdVhdhZgLvA==","signatures":[{"sig":"MEQCICqw2gVkfJItmEhsr103LOo/zVuviM1pfGrJAv0fsqvZAiAXPj6bdvvj5HRGwPShpMDoB0Ph3Gn5X4kvqZ7kC1TBsQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626762},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eb8de7295615397c3a2ba8d6d86ef0cbdeb62704","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-feature-eb8de7-kv7w4puy_1635240844738_0.9130809965905793","host":"s3://npm-registry-packages"}},"2.1.0-feature-ec733b-kv80bwfr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-ec733b-kv80bwfr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-ec733b-kv80bwfr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c4994f173b476f22b9f8ae6b17b73818a1cfd016","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-ec733b-kv80bwfr.tgz","fileCount":960,"integrity":"sha512-bGyjbAPpkbEbeSH5/W2n3RE2rfaAGl6n/MdACmqAJBl3LjmeTYH0y/Um0Uku9mZZy8FVcuBzg//apsR3Kj3GHw==","signatures":[{"sig":"MEYCIQDy64koyuRXoISxN9KFRlJj5bIB3IuhrbkfDYMOf2mDEAIhAIOWfB1+VYVBLQB+kj0nj49VevHaOC5XIKFiAWVnHdvL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1629928},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ec733b8cfee69757cc97c0472652075a6c7208a2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-ec733b-kv80bwfr_1635247934573_0.9175372319147677","host":"s3://npm-registry-packages"}},"2.1.0-feature-514050-kv80gk6h":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-514050-kv80gk6h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-514050-kv80gk6h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"72a9171d13323fbfe7942c96959693a61d9551f0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-514050-kv80gk6h.tgz","fileCount":960,"integrity":"sha512-WbZLcKpOccGiQs8SJ9EgvyE31UhBVm0BC53xW/Iq6tJ1esTQ9ZbR2L495aJVuqK2EM4Cg0QV+nNlggtqiNmZsQ==","signatures":[{"sig":"MEUCIGY2LhwgQZCGYdJ1NqPxdIHfobM5pwzDfVK6pdKM9ez0AiEAnor0VZzoNh7MKtrC4GBMnyVvfgqJOQ7xswr7n8xOvsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631656},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"51405049b56175321b3915e2b7663fb60870bf0a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-514050-kv80gk6h_1635248117769_0.9436315809330251","host":"s3://npm-registry-packages"}},"2.1.0-feature-056ea1-kv80gc4h":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-056ea1-kv80gc4h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-056ea1-kv80gc4h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"56645675bd065d0c41dc8ba81d94f661d2ac1b9e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-056ea1-kv80gc4h.tgz","fileCount":970,"integrity":"sha512-n+FqMx25maMTxFk79YNqq1ss2qsllCj1dTdzU0yuUkBKZtHSdwmH9O0T0v2TOeKrX3yqFmc+Il+dkUz77ZHNRQ==","signatures":[{"sig":"MEUCIQCN0Tht147SlepnOuKxWEZfrwIHxZiWi5Gv4i5NnWihRwIgHU/UtYzAVSDedWzRA6QEAM2OPiWB3zhytpHeOdI9x2Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634976},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"056ea1a3faae8b96aba9d7e17c9fca1a2bfc055f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-056ea1-kv80gc4h_1635248130851_0.998835132679609","host":"s3://npm-registry-packages"}},"2.0.6-feature-87d213-kv81fjtx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-feature-87d213-kv81fjtx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-feature-87d213-kv81fjtx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b4fe563f79d5439b48407a4cea97163924436d79","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-feature-87d213-kv81fjtx.tgz","fileCount":965,"integrity":"sha512-Fuavy6d6dVJAL2QQWNa0nSuGB6nQbmOrdFFETS5fDGI6yPqip0SdCvsaqTnt9KdDi4F83Na6Qx6ON08V67CK0g==","signatures":[{"sig":"MEUCIFWxmOYFjOEfgPp6uD4tTjkT1T7u20JXS7t3RhCd235oAiEAn0OpUVo3r7jo9PtxFhyXOEhqgz2AP5bgyszcdXHQPD4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626762},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"87d213bdb92d6cacaca0e65fe1afd30712279c6f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-feature-87d213-kv81fjtx_1635249760065_0.7880506498925255","host":"s3://npm-registry-packages"}},"2.0.6-feature-a29f05-kv98y9a8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-feature-a29f05-kv98y9a8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-feature-a29f05-kv98y9a8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d003266d1bd731f969c00282d521420e747e7faa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-feature-a29f05-kv98y9a8.tgz","fileCount":965,"integrity":"sha512-G9+LWXJ1+cZAN/KKDOAHtUHezfgPsUW0cI/do025+mN76WmaKQmJhN3lno+ZfrjjPrZtc/PauMUloNC62uIHog==","signatures":[{"sig":"MEUCIQCN/KftqF6PeDaU80tRUBJuOg1T59fn4k699juzbKaV7wIgdxMvceFdMhSxy4ButgoQd9ILwepxfu4Pfjs7kTfcR+o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626948},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a29f05c89a22a876dd2e9e8a55c237241bd9baf9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-feature-a29f05-kv98y9a8_1635322869070_0.47673125968216357","host":"s3://npm-registry-packages"}},"2.0.6-feature-bcf3de-kv9niylk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-feature-bcf3de-kv9niylk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-feature-bcf3de-kv9niylk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f72b5473394fe8f718ee521df97c482ca89fd723","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-feature-bcf3de-kv9niylk.tgz","fileCount":965,"integrity":"sha512-RKsxkf7mmVCvIkokfQ5H8l4nzlSFzdVxo8R0EQZFc4VqhJlh2ADheLAxn/rPkWQuDRB+xpCgdpXDiAOi+eghEA==","signatures":[{"sig":"MEUCIAtTii3HN56bmQOfj+m19vM6D4jPZCsIwXsgKF2ABxxTAiEA0vW5FU76sJsXvwGjAzDIbPnX4sS9SKl7yLlmHUV3Cvk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626762},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bcf3de265d67bd4002904b03ceaa99841f367b9c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-feature-bcf3de-kv9niylk_1635347347266_0.01583709636778341","host":"s3://npm-registry-packages"}},"2.0.6-release-18bfa7-kv9nopls":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-release-18bfa7-kv9nopls","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-release-18bfa7-kv9nopls","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"612f44181396f1f05945ab870b709b817ce36186","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-release-18bfa7-kv9nopls.tgz","fileCount":965,"integrity":"sha512-yz7b+pIWoOdQjWK5VTUjN46iOrfmokZhpoXT6rHh0N4MD8UKx1NQlF582l6aUCyzdEKPVMM5nT8r3uEoicywUA==","signatures":[{"sig":"MEUCIQCvYEsqK1QXCPd92BL7B7zzLmXHNoKMrad1RdRzSM+1uAIgHa1usJl4hJnbKMTHKGRpJDi9w7gqA0PuLDAA3GnJ1ss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626762},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"18bfa75b3a58183c6b66b4c98b4293227403af02","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-release-18bfa7-kv9nopls_1635347616816_0.5682086193131421","host":"s3://npm-registry-packages"}},"2.0.6-feature-042730-kv9nqrjg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.0.6-feature-042730-kv9nqrjg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.0.6-feature-042730-kv9nqrjg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c1b4bd481853f6f8f2efabced73776a3475d0bd7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.0.6-feature-042730-kv9nqrjg.tgz","fileCount":965,"integrity":"sha512-0FnJTKKW+xg5kd9EUhEyVmrp3f1Z8NJkpL8OJEoeFiv9YVD3GOcWCRsmIFTQUHf7tcYdBI2fCsO47SF+sURLdw==","signatures":[{"sig":"MEYCIQCNCZT6YUV0uqq8gyOerr8furxgO8drG62xd0GcoJH4xQIhAKVm84hN1qqcd35hbMpKu+APFuTLqAyU2P0jjvKtxnBu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626948},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"04273016d483c750423ee37ce2538f3c446783e9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.0.6-feature-042730-kv9nqrjg_1635347718193_0.5900473318663062","host":"s3://npm-registry-packages"}},"2.1.0-release-8f1e60-kv9ny564":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-release-8f1e60-kv9ny564","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-release-8f1e60-kv9ny564","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"edbac37d8b38f01a045364c1fe5d37895de6bfb1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-release-8f1e60-kv9ny564.tgz","fileCount":965,"integrity":"sha512-4QDUAFN6Mf5tC+ke5XWxlBQpMLx8T3yLWek4+6zkOS8NvisQYDa7cKdmOxUMFeCynQZF6H7Btlgce9Q1joBlJw==","signatures":[{"sig":"MEYCIQDzAScpaKL4xITjw4/HS++9YH2rpm7BnUnEME7AnPKeUAIhAKbNY2tujqnTkKjzib/5lvdFXqbu/kB43WU8/haO8m6W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626762},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8f1e603e84b78bccfc5de578de2d5efef82d05db","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-release-8f1e60-kv9ny564_1635348053157_0.6065451144778073","host":"s3://npm-registry-packages"}},"2.1.0-feature-e61db0-kv9o5p1m":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-e61db0-kv9o5p1m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-e61db0-kv9o5p1m","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6076730feb521ce52ec0dc5c4d874025d509b565","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-e61db0-kv9o5p1m.tgz","fileCount":965,"integrity":"sha512-tCpg0PTZ/KbUnu4pj2rjH9nHCnf50vfHUZA9qUvAkMACnGMWDosq1DVf/yY960mq41kcnkO32ph758eJWu8ytg==","signatures":[{"sig":"MEUCIQDNfrtDYWhr+GSApCEwC8uDVteHOdd1otRlP7cF/SvGXgIgYl+zNsVrMkCy3yiI2VVdOb/SuOwnHC2g47E8/Bwejx4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626948},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e61db032f36cc23411954a35608e0a87f3fc8360","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-e61db0-kv9o5p1m_1635348401273_0.5180935658377759","host":"s3://npm-registry-packages"}},"2.1.0-feature-9ac9cf-kvb3hmno":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-9ac9cf-kvb3hmno","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-9ac9cf-kvb3hmno","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"338cea4b6568e7e7cbd8ffc367a6fbed60525683","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-9ac9cf-kvb3hmno.tgz","fileCount":965,"integrity":"sha512-4WwXRnQbni1Cu5ApdOoEvWqhhKa5k9vE/ouaaxDSwsnETYaRpYVpGZ4B65vG/1OvSB42E54e7sQ+qULKNkXqHw==","signatures":[{"sig":"MEUCIQC1hc+zIv0d1J/9MHCT6sSCcthui9Z+vsZL0S2U05+HMgIgRdB6ICAKhRWTNpzXavrC2igYCxEiDg1ypt6UnlCoE/E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626897},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9ac9cf1dc3165b6f4ed266ec01e775b219518c84","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-9ac9cf-kvb3hmno_1635434619421_0.3914845067881898","host":"s3://npm-registry-packages"}},"2.1.0-feature-f769eb-kvb3l0n4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-f769eb-kvb3l0n4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-f769eb-kvb3l0n4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e6f7176988f663e27527cec9da627603ea39de23","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-f769eb-kvb3l0n4.tgz","fileCount":965,"integrity":"sha512-BRp97QmrLZ1/+rJ+9Lw10TYpMX0UBlL5Vr4gqDUk47l0EpTkN3/H0HrYvuYtg0YX6kM0xw5nORs6FdsWZYibbQ==","signatures":[{"sig":"MEUCIQC9OhmAqW+upYiMUkBDe7jXrZpt8YQI9T3HgIhQRvi9dgIgB0+/5Fe501OrGYLYPtoKHDHcY9h6N3LNPpsnN/eJXoc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626888},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f769eb0cfe689bd7725836d187cd0eb3c1294437","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-f769eb-kvb3l0n4_1635434789433_0.5815206217054729","host":"s3://npm-registry-packages"}},"2.1.0-feature-a08e3e-kvb9mq41":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-a08e3e-kvb9mq41","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-a08e3e-kvb9mq41","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"97cf5d2e2a6c27c7069c0f79898c7cf647180cbd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-a08e3e-kvb9mq41.tgz","fileCount":965,"integrity":"sha512-W57SY7FdBLK9dV12/TnkNqMwQR7xzE/g87m0L5Z0RPqSWzoWw/GKEw9gZ4owWDtC+NWxXm1K/OHgA8ASGruXGA==","signatures":[{"sig":"MEUCID+vthCvXTzmuCqx5vdXP93r51B+q+HLJFIUbBlOZRR8AiEA3GFUsJcQ/sH6RYOEZZ0q4hrYcEXjTyKeerK3uFmO8VM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628244},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a08e3e380cc120c99f6c0b1d47339cff8a365c09","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-a08e3e-kvb9mq41_1635444939508_0.8965703795581494","host":"s3://npm-registry-packages"}},"2.1.0-feature-d9c75b-kvb9ntcr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-feature-d9c75b-kvb9ntcr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-feature-d9c75b-kvb9ntcr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8ad7f21b189852a9e137c3f0d181b8b93b488d19","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-feature-d9c75b-kvb9ntcr.tgz","fileCount":965,"integrity":"sha512-7ZJ3cd8YE/J1EVhUU5Axk6yVDsJ1FpJCHf/qgn9VtfofghqjdII/hZ1bnySrM54A7B8lVafHKfCPP99vsOkO0w==","signatures":[{"sig":"MEUCICzLrSBX5hyZTbJ95HpOPIEIc9NTJuxndtoStM62pctfAiEA3dBnw1gngua/MCRVIVHGzpplfnnnsfINWWneE9ZGa0A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628254},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d9c75b46f576c4723388abbad441eee6490b3657","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-feature-d9c75b-kvb9ntcr_1635444992766_0.7348417756360466","host":"s3://npm-registry-packages"}},"2.1.0-release-ef32b5-kvck0v4a":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0-release-ef32b5-kvck0v4a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0-release-ef32b5-kvck0v4a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cdb6eb0274035c90965627ab86b8894f2395a39c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0-release-ef32b5-kvck0v4a.tgz","fileCount":965,"integrity":"sha512-sBP5LQFEcYEv/3hpCM5DSHrPW74rXyu5kwxeXNd/OnZVlJAbcw1fxIKlgWIC7i+Vl+TeFjLYVDBgsAfzBHxskA==","signatures":[{"sig":"MEYCIQDMqoLF5wZbPZ7l52221/NoAQImzinPyVq7JHDg3mmJRwIhALepv4eEbRd3ql6yls2szE4CowycNkcGhavaoHttOIXk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1628254},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ef32b552311f5b4e1ad430e9acbad7ad107f28b0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"12.22.7","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"8.4.0","eslint":"^7.24.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.3.5","@types/node":"^14.14.35","@types/mocha":"^8.2.2","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@process-engine/ci_tools":"^3.3.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0-release-ef32b5-kvck0v4a_1635522845143_0.7072667167627475","host":"s3://npm-registry-packages"}},"2.2.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3bda83ddc458bca79d398a744a689e93b94eb37d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.1.tgz","fileCount":960,"integrity":"sha512-hPedlFWdpVg6Ckyvtnbjx5tsfW5szwdPN/uteIWMGOFnt+6KG6W5obYTlrGN+9Y05KSNatkbLlNgluNRewAtEg==","signatures":[{"sig":"MEQCIC2oXhEphK1kuW/gUDdIj+QzMD+Z9vmwNpm5aQ4ImgLnAiB5Ow78QK2lCiJkEvS0dy1xP63TOIDC4b0bWT71u8I1+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631404},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"28aa90826af5f40e846b0632d03861b332106223","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.1_1635842467627_0.02443246500434748","host":"s3://npm-registry-packages"}},"2.2.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"402639fd2c0f45876978ed3d7665d32a2a4e98ed","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.1.tgz","fileCount":960,"integrity":"sha512-NiKhA5vnZKsY+E+QoGeo4HaOcewAqjdGLYCAy3M0qCez+2sSf1nssGskQhKv2yPAHI4XGlUhZZpT0JXNM9by1w==","signatures":[{"sig":"MEUCIQDaXAqFuw1k6E8pBsqi8PJiCFq90ehEoMVWZJ8e0NdmkwIgWEZWgLrbNV1xbm60ua/MTx8ehkgtijcHPrwiq+rMX/4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631403},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"10e2f2274174344eb549b17406ac4bb8e4119dcf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.1_1635842675500_0.8864151694049911","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7892697001f3be0d0678719ee946429b51d229d1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.0.tgz","fileCount":960,"integrity":"sha512-kfZF8LuXoNwX5NO+jcHj2Y03U6Zo6xRW1FUxLDRZ3t1RxL0IbG++lV4KE1RDJt5HUJY4V9kYnkAdmUVNCWTnPg==","signatures":[{"sig":"MEUCIQDhnatVjSBl1UCGRXOiyoYPNNJVL8gLyGMVHcX4/vS7qAIgbNEqbcf0x1epRGFUO1/FbVKzm63IRt1ycmXeUgO0QlA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631396},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"33fd37cb880967e9d15658e270ebd6b813f784fc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.0_1635946538091_0.6456216419899543","host":"s3://npm-registry-packages"}},"2.2.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ae78bd3144fabfb8ada6a7081f94452cfb40ce8a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.2.tgz","fileCount":960,"integrity":"sha512-2/VH094wxfj7Y6AIMhNuV7jg7mkdwk0q1m/Ni5V18diz0l2TE5oGNgR26c3LCb/6F3E02GqAOHJSh17atc5HYw==","signatures":[{"sig":"MEUCIQDTTfUNLM5cynBfkdojAWD6qOT8PtAmCi2kHgeA4PGnOAIgO6eEOrDRmCt6jhZ40ihp7WiJ7/wt0chOGHp8/v+CmvU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631404},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"42798013bcac38cc29446963daf611e04e503c31","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.2_1635946780961_0.16135697618649725","host":"s3://npm-registry-packages"}},"2.2.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"73aece6de0626388000ca23439d0383a725b0560","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.2.tgz","fileCount":960,"integrity":"sha512-Sf2c15kkC54GEFsdJe5CENNTgfFs8Rmwn16ks21W6Sae+uOcGm3wdi3hChQTXyFIUuNumi+PZgMgaDGRVeSgvg==","signatures":[{"sig":"MEQCIBUwGlVAd1cAeaJ5gtp1hG7do/s2A84b+boVNnZCmRLFAiBZHRP0DDuOK6xsyW+DG8IJmbvNKw8JntSCFQ5/AN0t8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631403},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3f4f1602b2e92e76ce9b19e68aa0c0c8c9873e29","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.2_1635946789246_0.5050726504475778","host":"s3://npm-registry-packages"}},"2.2.0-feature-4f8842-kvjkjchx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-4f8842-kvjkjchx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-4f8842-kvjkjchx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e7d71018228be46dc7103eca9cf345521b47d43c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-4f8842-kvjkjchx.tgz","fileCount":960,"integrity":"sha512-RiKP9WI7l+Evhe45mKoetO3GWfzSh+OLZyrWZ9uV33FY4H2ZL5uBZB501smJo2EkHJWaUo46q0QvZrOkodrUjg==","signatures":[{"sig":"MEUCIQC5CHjOuKd7uzVrYm7nYUunxQ0gOQ2yy4mWOgN1iMLAiAIgBmaBh+P3uPwySRLfa/EONFONudxPjfv/tMVjq8mlYYI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633297},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4f8842f2983af5003421942f7db47263d1ebbbbe","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-4f8842-kvjkjchx_1635946962836_0.46509647536452636","host":"s3://npm-registry-packages"}},"2.2.0-feature-a7df36-kvjkjeeq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-a7df36-kvjkjeeq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-a7df36-kvjkjeeq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"375c08c1341845688093845b5ea618c299e548a0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-a7df36-kvjkjeeq.tgz","fileCount":970,"integrity":"sha512-Ar1hhzTXgzo8qjsYPk9pgynMHeHcfkYO4dPal28rTMB+kn/YSThoSSUUF9ebWEwGDtuvJfJiJnAymVDy0+U0CA==","signatures":[{"sig":"MEUCIQDcAPWsFw8LUxt4sBdaBY9suQOTZoi5wevj67T0IQukagIgORdlxH3gyaSSvMzTY5N3hNcTEGB9/PHBj9TXg+cDWCY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636617},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a7df362b063a3fda23924ecadd03e1a29e3240fe","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-a7df36-kvjkjeeq_1635946987999_0.3139583515732072","host":"s3://npm-registry-packages"}},"2.2.0-feature-42049d-kvrtc0hn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-42049d-kvrtc0hn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-42049d-kvrtc0hn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c0aa6b78de6ccd35c387b84e8442d20490900a1a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-42049d-kvrtc0hn.tgz","fileCount":960,"integrity":"sha512-p0jNk3VkWQoEG21R5fH6Qee4/rD14q64G8Rzz6l6XGXLbahpUo/YLkHLIoci22lDHZA3jb2qGPIijleVt4BZ6w==","signatures":[{"sig":"MEUCIQCYsGT/48Y1bDw39oxG9w9ocYd0WKfy9mC6Cu6Rvlng1wIgHyldqWAhRckCsuZqQ+W373uN3cABn2QdzTYPD76r1ag=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631589},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"42049dea82c573c80c35d3f4fdcba3719e480978","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-42049d-kvrtc0hn_1636445470265_0.13452692813975142","host":"s3://npm-registry-packages"}},"2.1.1-feature-10f87b-kvrzov9h":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.1-feature-10f87b-kvrzov9h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.1-feature-10f87b-kvrzov9h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a195ae605e1db97af25f4bbe3ae3d59eedc65c46","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.1-feature-10f87b-kvrzov9h.tgz","fileCount":960,"integrity":"sha512-GsvSZd9ZOuXNk6U028+dn5j9yZuQT/OiQxs7/KJHRuH36xscZJIXk6rf9S/v9QAb2Z8menwJ+qEFeHo3jo8cbg==","signatures":[{"sig":"MEYCIQDPmbDhko0xKhob/+4aEVmEtNrRyjpIDK8feDVdzXHkIAIhAO+qnqCbB8pXZM56uWriMVadXszEZghLiyOpsZT/GjNI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631547},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"10f87bb2e4e09415b1dda248da804dc9ddf27c4f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.1-feature-10f87b-kvrzov9h_1636456158470_0.6508795646375938","host":"s3://npm-registry-packages"}},"2.1.1-feature-443ddc-kvs06u8y":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.1-feature-443ddc-kvs06u8y","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.1-feature-443ddc-kvs06u8y","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ef04486ac919e2a9c189f2db96fb4c73735da265","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.1-feature-443ddc-kvs06u8y.tgz","fileCount":960,"integrity":"sha512-g3ZBoPWIjgfXx2gb9K0057hEoTgqb3H9RNTki7NbhciCZEBBrZvH0yl4+FhY0UB9BLl1c/xdWMdycBuZORLobQ==","signatures":[{"sig":"MEYCIQCn5zIWV5eGVre1lkZWhxnppg9LPTpU/UDqQJnR2+A/iwIhALOW9cm6giakJxMsgoZAVPND244yrKd9lP7aKePwR4rQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632061},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"443ddcb4bf40e5db57e0d021757e0ecfad87ef7a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.1-feature-443ddc-kvs06u8y_1636456997946_0.3694965328981672","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"63d13f0057a336be3a100c50ebe1241ce2b4c1ec","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.1.tgz","fileCount":960,"integrity":"sha512-rU11HFm0VWZa/zvr9pCBc0GtJwPDdvTcMCFcSkXc+lfuIZ2MJSdggnqLX6JosMQ2rT3vuOUfPREQvWePHz0GaQ==","signatures":[{"sig":"MEYCIQCgBW3I5CdtrEpRk91gPsI3lWK0EHY84/iRZGja8NTobgIhAO3nAckS1gZRGUNC8E1GokgXQC3mX0YvtTUsaCK874T6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632037},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"77144d19ab3798a7e090d05f68115783b529e6c6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.1_1636474362234_0.13152157232135475","host":"s3://npm-registry-packages"}},"2.2.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"48878cadf7a098db2c4caf3fc2c6b3546ac40d10","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.3.tgz","fileCount":960,"integrity":"sha512-MBq9dSmSZuaDj/sjbxmX2HU5AE1QVeDjKABo/foFCb6ldGGBZImsvuHqW2JNbVabLVPwXKR12608HYCxFhGinQ==","signatures":[{"sig":"MEUCIQDTFouEJNHkJFPzT7Xjp/9cQsSeJg0DejmL7Ihwx4TzlwIgHByUQI0WVB3fF5+uSQecSP2mT+ARB4wwEcRGFtulAJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632045},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7c123cc691086f3c40e91237556e1310c5d4a9c8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.3_1636474623433_0.24112525558932085","host":"s3://npm-registry-packages"}},"2.2.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"963a7d72a2837db6c223780e3d0a5812c65b0b6f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.3.tgz","fileCount":960,"integrity":"sha512-knlJfwDr4fIg8QkTtuGfBT07COeVdYsbI7/ST0S9MrltsKESbnvLKgXECr65xK5zK/RKRQ63qhdUDGOTbeMjcg==","signatures":[{"sig":"MEQCIFpQW32zbdZ4bMpmy/85OtbGfVLTAWTZk8DyR3j3+jbiAiBAy2QAbiIB5vVTi2M92DTw25Kj1nknc2eKaur+fkf3dw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632044},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"357804ac5654a29991ac7259f896b656e79a0993","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.3_1636474647448_0.004214566795972763","host":"s3://npm-registry-packages"}},"2.1.1-feature-aa648f-kvtcuacc":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.1-feature-aa648f-kvtcuacc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.1-feature-aa648f-kvtcuacc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5d44e3e6a990fcac697e35c2ce8b5ae84476f05b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.1-feature-aa648f-kvtcuacc.tgz","fileCount":960,"integrity":"sha512-avpPp8WVmQzrArrtQzNhhzLR6gxSCIrpuTw9496mek9NuqfFV404motzOFcSEH5A4OWhEZBpJfxoB853vqg1vg==","signatures":[{"sig":"MEUCIE4IEx3QMIHay4qlV3SS5qj3YRDzE/8B+26jX7VnEBABAiEA8Tl4oZP+nxff2IqJ/fQmWQe5Xh4DXAhDqvwTTjItMK4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632230},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"aa648f1f8925dc23fee843838ad60437c58af2fb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.1-feature-aa648f-kvtcuacc_1636538727345_0.22072027501876645","host":"s3://npm-registry-packages"}},"2.2.0-feature-91283a-kvtcvc3z":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-91283a-kvtcvc3z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-91283a-kvtcvc3z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"83234e22bbc34e5bddd240ada48e6d853dffa93d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-91283a-kvtcvc3z.tgz","fileCount":960,"integrity":"sha512-ECR4PJ8AJUXThDNNe7BESaB5/iNJAe19/8L8Wy3PdpD0nGp6uKWjbX2aAv+uXEShR6jfZsZnGsAsqST766Mk7A==","signatures":[{"sig":"MEUCIQDOEFhUBeZ/2uzcmJZPSfrPzeV6s1ySJIpnH4uRO79swQIgY3q7FjrqJXKcQN9nG9B4hpJfcyuESqTW1v5NnpJ/1Zg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1631589},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"91283a83b4f78e0edecf49de456a9e284be1aef6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.9.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-91283a-kvtcvc3z_1636538749355_0.1936847913097106","host":"s3://npm-registry-packages"}},"2.2.0-feature-fbf0a2-kvtdxujn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-fbf0a2-kvtdxujn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-fbf0a2-kvtdxujn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c88da171b232ed45bb658bb3d76a39014d8e28a0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-fbf0a2-kvtdxujn.tgz","fileCount":960,"integrity":"sha512-rvZs2q+tuRiOEwbE5H8FI3FMP3zt7W7EimMW8Z7xFAe55XabWTqq7VmMhao1l6TFBGWBV972J2F8pe+I/3kS0g==","signatures":[{"sig":"MEUCIE01rLGWLwFg1YEjb0FSomzMQg7KPIzLc6TJEre8CXZ6AiEA2VcRiOubhz9bhtFilEtd4jYlIct65cZKTar5zNd/F8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632230},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fbf0a23201cb67bafdcbd1a301739afafaf3e701","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-fbf0a2-kvtdxujn_1636540553929_0.3363175121194706","host":"s3://npm-registry-packages"}},"2.2.0-feature-62bb11-kvtfm1yv":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-62bb11-kvtfm1yv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-62bb11-kvtfm1yv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7fec348e9e1dbc4fa17e0b360c5e3c994b67b483","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-62bb11-kvtfm1yv.tgz","fileCount":970,"integrity":"sha512-oKAANhvh96VoSiWcKMFlQFN8cG+2pCTwZzt2nmxqtvUacM+Y91JGyM0zAbelgMvquz7l/RZ0xGl/3ZXWs11dUw==","signatures":[{"sig":"MEYCIQDJZKVBTeIAzguMy5oQ7IHKF1Jp8rjmDnfJoXGBpb1lLwIhAOOzl6x9/JbLYLdToaOatheaY5QgjpRJEM7pZXoBxZim","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1637258},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"62bb11eb3d0545824eccd16c5349aa356e4c1a3a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-62bb11-kvtfm1yv_1636543356438_0.7453191307807243","host":"s3://npm-registry-packages"}},"2.2.0-feature-87f377-kvtfmj9s":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-87f377-kvtfmj9s","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-87f377-kvtfmj9s","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2c7ed8413743c81d6d3b1ebc3b1c1d3e028a5c76","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-87f377-kvtfmj9s.tgz","fileCount":960,"integrity":"sha512-Ktgop4ow5kRWqhoocZ5VN4qmNWFMgNl87wHhWcMczbmPmvLQ228eriJ42rFZCnNFp8xH9eMMYcC+5LIroFcADQ==","signatures":[{"sig":"MEUCIQCV/Olb2Nb1iUVc0lfuE+pS5NXa3vnZh1j0s6P8SgCPHwIgeF++bUcLxCUxGuIl5gS2jS8N8w3RpNxowWUeyfARieQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633938},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"87f377de292b0cb3c57fe111b289cac7aeb2080e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-87f377-kvtfmj9s_1636543395214_0.729312970213714","host":"s3://npm-registry-packages"}},"2.2.0-feature-fa518f-kvutg2ux":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-fa518f-kvutg2ux","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-fa518f-kvutg2ux","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e5d79cf43ff1a0a5264ce94cbb6b6f8d86db41e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-fa518f-kvutg2ux.tgz","fileCount":960,"integrity":"sha512-yNrdodUmFzBYqJLhKaPtWDDsBxh1uxTOn8FioMb/MJgFtKn/D9SPuUOdRXlcmMCzGrN+zVcqrLQCquJnVpb6ug==","signatures":[{"sig":"MEUCIAz3/slGMYN2Ro2fg2iubZ+d9Dq62//HHHgVp24Wr25bAiEAy/y5uKKktrDlgA69drzvwBYQosTj/5t35ghB69Lo5L8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632700},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fa518f69d8e3a03b6f63eb70d2f17fc85b8bca94","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-fa518f-kvutg2ux_1636627080520_0.4405899112903735","host":"s3://npm-registry-packages"}},"2.2.0-feature-f8f082-kw3bqna8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-f8f082-kw3bqna8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-f8f082-kw3bqna8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8775c4b75b79937e682e4ab220464b79ad65a4ba","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-f8f082-kw3bqna8.tgz","fileCount":970,"integrity":"sha512-MPXmYg6k9/kl/+bu3eg5QAK/6q/BzaHZ2uMcjVF0CAFOuhGhNsBOlGo8Cbn2uLATB0wz7Zrso8IS4agzpJTv+A==","signatures":[{"sig":"MEUCIQD7oeEoEsEBeuU2P0v80dLBafR9ghsxPX03WnfHEpxtywIgLFT39VuuLPObUDGFrhLLcFFR70zLX7maFqJhCI8zNCk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1637258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlMwlCRA9TVsSAnZWagAAxDkP/2yWMQiv9GjfYlewMbIT\nO/Lec2BSJjI2I+06xYQcOJDoEzi4jTtGtNxAIYn9mRuQlVdgj2E54B1koDpT\nEw9arw81mjhnORuwT21O2QOJTnVRjAa4DArQakZQQtqK6hccYTT2x8Lzv67a\nlMWW49g7hwuF5qrEW8GOEJbEQKBX05d7BaBt9JRgvmKlLVH6a+MiVySjW5GM\ne5Wrs1gLWHpZk8H8nhElqMm1m4tg+puEb6xI79+PtCOmfsGLPXq9lCCMqdEM\npPGlVLp3OC2DIg5fhAWr9z4gYI1569fcw8/ylOXwSDHOX92MDpiSeHFdlPfL\nMVSDbRF5Hi9Y1c/fRpPW968DMl/pxOQr6UO7/80VAoJZJ/qRcwV/caG9p6Af\n7zlgz5biIzYLE30atRDZpJ4DnJtQqy4oEjQ8YDGME9reGQV2HctKhrP74M3L\nS5EB7pTV506qlTwhjYt0f0J69QeNGRJq4/dCTz1CyNB7VmCFu75j3mFacbwZ\nSbxHIxlTESIqEPrqAceQzYKuViqgCea8j2DKVJQD9vOC4CtfQw02el+gwUM+\nuTdjAaBDx3K6WeuqZl1DObGqrCbu0aliaQdvWszzPusiUN9+/rJPAczuGgH0\n9OkKKJhLf43SO7cCBD/e1qQn2MHpSBUDNjcByAaq0mRBqCsp/0oAmbmeSuw1\nRSzf\r\n=+5Zt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f8f082fa52fd7dac3190c1149ce161ec5e9121e5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-f8f082-kw3bqna8_1637141541414_0.5990537615443592","host":"s3://npm-registry-packages"}},"2.2.0-feature-b48d1f-kw3db2v0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-b48d1f-kw3db2v0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-b48d1f-kw3db2v0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a23bca5e940d4ffec8d11b53569f2071dbe929a5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-b48d1f-kw3db2v0.tgz","fileCount":960,"integrity":"sha512-eZCF1kbFkBr8nenIe9+bl4yGsNOZoYgDQe3qVHKREiQIqR03UUmZBl+9aTT+B78iO7vzEUIbpc13HrUP1jTH6w==","signatures":[{"sig":"MEUCIQCNEQoiJ0Q9ZrshmoAAkETbhDDRLvJsKyhjF2Kzj4yZzwIgPpnXMxk2fP8vbwaTXGokTy5IjesvN2JUAgtHWrL5HbM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlNZRCRA9TVsSAnZWagAAYigP/ioqSW/es3tANfq5Wblf\n2fMf4C5SuOF3bNMCZd9Z8L0E5K1+0nP5/RMpUdCF845QQxRu8WBdlaNkbwsQ\nuXWUwlIpor9gYcmRx41O5+R4uM4NbfVfEBLsDlYzp/uxLPw5Ht5Ll9nrjCmT\nSbhw/fjdOYL39emSlmsnts/zwD9BNs4Uc7kpLwi05LWtF9qYWRrbK8Ys+UUT\nLMqAQl13LB2tHcIvl1G/UoBF3kjU+ScRM6jcob0wQVp15OFd8rkQdKRAGKD1\nWEaLkasiDmRytOYH+0xzNmdHZT7uPto3RWR+Vb4dU98XOKy20q71fZaKfx/f\nn9RG4oQn45OXy06zhHiI+zzv+QOSqbEgGQesYOUXlhcVRBXEChucdh0gePej\n9pUnLc8afENpHunFoCuoOlj4/AEupdeu/MkpBPgoopdGHt323nLyJ7xVBQVM\ncBjNksqWTgsEr3SgLVKheGw3tZMsfHxos4SrNeONcALiZmLk+137jJY1lyR4\nQ2/egON2tQXB5Tqfi2+qnStBiedCoHf9nCWKmBKuJh0l9nB3OKMGNxIBJAM7\naxxBAYyYjcjrjB5e1Q4ZXboMJnXAidLwronVl32HYDPND/4UyTnmE/p4WXwB\n3pbJEkdrPKc8Ncvl0Thu5cqQpI2CKcf1VnaZ4mJdgXJWHBbxztTlveyB5ueF\nnN7J\r\n=6VaZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b48d1f88325f302f5a34a78df4a079966876a8d9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-b48d1f-kw3db2v0_1637144145072_0.915898968491206","host":"s3://npm-registry-packages"}},"2.2.0-feature-3a0400-kw3jaweg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-3a0400-kw3jaweg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-3a0400-kw3jaweg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a1e6837046b229b437634b04834b756ff35ee62d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-3a0400-kw3jaweg.tgz","fileCount":960,"integrity":"sha512-VosspNvbwTFS9ien5qf+GAVjYlnjxghTlBUiZUYq+oO7UUOabABYDNiAy/VFsGZ9pcN3iOlvm6OnCPihpvvP6Q==","signatures":[{"sig":"MEUCIA4X4/y6JgQoeEsNLCY28HQzqQdm7zYu99c+VDjEbzfQAiEA03voT44ew6Tp8CwkgR57pfMsIgor4Uhj4W7eZLHc9K4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlP2pCRA9TVsSAnZWagAAMv0P/iyPj+IKWc9GdUXzdpje\nofbWRrnN1dckGiFKk3j+iBSQlQfTzNtQrtWzYCUe9p2Ko2r0M3waKTnlCk1O\n7xjBc86UuULKEeLEJaHaVKfj+WIg0lTU2RJvi2yZJjLhn6gRm06dl+z2pKdP\nGoV+nOryocSIbON5IvZ5O31hP/QmYUfO7OewjXFOHnBbiH7QTSpILUpN1eLh\njNDxNRLdTDGShnScGzNTVDhw9w2C7KZlSUI24XDlt26MHiDtIF7BYJNI2ndA\njdUw/7hKXT90iRFi+kQyMoxUPxEWCXj9dHz8AzXXXi/pcxyQlJMnIerJMepR\nU7GIbNiN2JIOCkBpqXS3HNWa0MSmnyFmyMqbEq63EfOBf1AKb9uE2WBZ0Qhu\neHW2QiWzyFrS+t0YxJU7J6TA4eQ1xPIuQY/jsBH7vh9Hm+2WoMDdBHPzjnhh\n+r+TC90eQUVnUzUmITeVIRCk/akxTjD9ncJ7eNnxO7OCR+DRBWVS5eI6Yizw\nA4SCh037ZwgQMZDeaSWsdS2lj6o4bt8BVfUtY80YFi4vJn9Un/3U4UHvlWeW\nXXI9iNhxyZ09uAO9hAgt7Vrw2oQ+c9O/zqIeGw+v6Dtso2aaUCRWfgtxWJdb\n1OI7o1N7Y5/f5CTvEALoB+jS0STNDBmtEgO7N0x86SmyRjZNEe15Z2Vek5be\nd/+f\r\n=SIv8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3a040079e13bca8e3d300b23d6b16821c6ede9dc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-3a0400-kw3jaweg_1637154216853_0.7847062953788635","host":"s3://npm-registry-packages"}},"2.2.0-feature-decc08-kwakxa9w":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-decc08-kwakxa9w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-decc08-kwakxa9w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6ca532ff09f92a8226c893a9fb7361754574abfe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-decc08-kwakxa9w.tgz","fileCount":960,"integrity":"sha512-vr91GDErwXhsooRhKxHSbKRvtMF+1/ZL1GgCKUOBQDFDx6H5Kfy60tDSW3lXzv0CeL9zfphWKP9Cc1QShgFtJw==","signatures":[{"sig":"MEYCIQDmaEuH3r3LQ6luCgy8a01pGsgxexHqOJp+cn/KyF+hXwIhAN0zqUAkC7MTNQuDOIA8lZZUBhGuliiW8mp6Vu2By+2g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1637688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm33ACRA9TVsSAnZWagAAwK8P+QFax85MmPiYaybEPZDH\nF/LqUuzjbGd1aZb6CMYki3qA5dRlXnjlIsccmeOkvyW0GxtXwb0BZ5I5nNvK\n41Yhd6W1Ldz6JDpTaxbFdPLvCfC24jeKlVr1Re5ablsDB0PZJekQDJzg4Tr4\nmYllUuRPIED0JoVkguyl1G0vmsf0rucWdPKRPNpxJ7NAK/9GICojGIcUwl1X\nUgWR2p9FQ7XnwTQch/TJbfEoTPaoZ6O2BAgTlGBywOPYn/kLka0psKpolkx0\nkSphRz3HqXYKHPGOI6t5llUaNMTKCHCvTFhyLYUcVkFSDSlp+H1Ro/vdoojN\ncJ/oFqxgbpb4+70gPLED0f/l4Y41CLGCMkoE2vqwnGMLwfdsWptCwTaHC69r\ng7CdOJiv5Y2fq9stjhe5pHMY65Qm59RX000+Ba5qZHYOQ7cLKs5302II7mYU\nbjYZgyob7zjadhfXmN6lgJgbIURUSYNeMcZ4Ctg7QE7g/ITgroefIVVpoUD0\nGi6BcV7H6HTYNCza/V0gzJqMa4qz7+IFbTQ+Gb+r+sBNQG+B2leU2FGbbldZ\n4GqUGOgq2l9b0cC3g05keJW6h6IPizA4BGMoA0Dw7655yUCb3e8zPz8bKGAd\nF6k3GhLkVkdgLO5JhNCb1aP/NiQSBbfoqHZJINe82CBz50reKsQUN1kRnoYl\neidr\r\n=9jWw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"decc08d1a76377b6e35268398afab3314ec8ad17","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-decc08-kwakxa9w_1637580223553_0.8892739158121148","host":"s3://npm-registry-packages"}},"2.2.0-feature-3d1237-kwasf7rb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-3d1237-kwasf7rb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-3d1237-kwasf7rb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"561be4b25f1a606cee4a5cdb07bd3d81cbfe4909","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-3d1237-kwasf7rb.tgz","fileCount":960,"integrity":"sha512-AO9G1hGoVB1wKO+DIwKeroZBivfXQCe2uCNq4PN+9w0XgBt4k8YmolNIyg/3rDy2e+7id8GusNUuZ1X0HomFCg==","signatures":[{"sig":"MEQCIAMjuht8zOyBOwoFuGLO1zs3olKow/kb9M4hB/gflIT9AiB+9RoNe3P4rGic9WK25rIsMBXC1XTe73/RAJdw5t8iFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1637726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm67hCRA9TVsSAnZWagAARDYP/RQmp99ZovPzGwLdOPrP\n4oVtvZAQ1b+PQc7LS9a8MI+bQ3M9XLZAY4Iew40yJp0/E10ZK0hpwTqTYeRK\nuIYkpHGUcwvt1hWtde25Ap4GbDEjT3bV1tOEEMHC6v6089COjuEWam5andOx\nbeArMjh4D5Rv+0+kDn57sjpx3Y1SbwVsGNgggIXUp9FlstqpvVa0ePgUZzCY\n0L2mihyHLWJ37ryaqrnuhrXF0Amhe24tFBIG5ixP2gVA4dy3RXzfb/3WmZGV\nM/3LTbMVOr6rgmTTIFKr8XjKaFZtMeHtHMeo05EMwi4V6ZDXHuViUacjvfWQ\nMU4/A+4DUdNp6A++iDTC2dUT9CmzCX69PSp55ZZHBWEwc7LHgHiCKdId/ggp\nXYtThdTRY5vMmxf7ymUA7ZpoD0Hlmo/DWRhMuaf6VnC1qL7LwJFtooN9HAna\n0j7DE+JtY7lcZ8oNklal49sEugymY7G2YkXbo4VmNXHMsMfiVGqyn/nh71QD\nZ2y5yYIpVARxUyBWPRMHupHtYchF7KyiJ76Bnm/sxE/dR2qO+jtfjQlcgve2\nafHfsZUJgPHOr+/QDxyuhHU2aJX5OEZsXMR1e42+zz/788FN+h87KXk+0xg2\nDNTCeiHqw7OaYU8lfLl9P0IIB71pvSL2HrvuETW0aq1tvsn/MOsVRI4j09w2\nyzxL\r\n=Oqpe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3d12379ebc98257ed0818479d1392a122b423cc4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-3d1237-kwasf7rb_1637592800923_0.4026394323807072","host":"s3://npm-registry-packages"}},"2.2.0-feature-62a201-kwbt8vez":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-62a201-kwbt8vez","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-62a201-kwbt8vez","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"836f72bccba6b7e90ca4939246bb27946cb8f31c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-62a201-kwbt8vez.tgz","fileCount":960,"integrity":"sha512-7F9Zcgj2a74F52OjmH73j/utIXpjA/qlLgF2xe+9F81jc0WoyF2xAECHj5Eam0zi+c7zbhR7O15RVE/VhTzQyA==","signatures":[{"sig":"MEUCIQCgoEa/3CgpLTTjBx7ZEsDxNd2k5bmNtfZI+stClLG+2AIgXfitaLyjJR5ThG6mzwY5kOgzahvC7hujhmiwIRCRawY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnKCVCRA9TVsSAnZWagAAZzAP+gL8ksSb4+t87LTsKxuK\nuQfsuHh3bSVeIHSuKS9neFSqCvMqbo53WkA7LLguBUDKxJ2eWPpARGWWpKlU\nRLQdrQTW+dBKvtYY+GkmysZHqqbHM9DvBfjPNAQOoAv/fZOnYyzktCp9jug7\ns6SRh2pXesBLVgwl3kM2ixD1M9XjtePf4+z050s+IYPOOEnKBYY/vnkONbTn\n4kmanru3FTZ6i/0usqhk5PdMYvOOvWb9uhHKys6BQNz0ATPl/77GQ2ZSlGqD\nHYSslXMR7tC1sp+6wVag0l2guUmBXewGhn5QodpbvJw0V/Pq4+/HINcIzMGL\nmS/GUC5FIUjQN3xBA1cm9/HNJqWRyD25jZ0ctCwWuLCt6+C4jb0Qu5Aw4Om/\n+QsTJsnYuE2uzuJ54r2w9IuLwIalSacDWLz2SZcHxFkQYfUkqJfShSd34MjL\nCsMfVXL09T3ZyHuOzbf8bmXJKDaUDM8hAm0BtpTAlR5+hFEB2vqO1znFbkL8\n2ETAyoik2mE4xW3R2b2AhL3Yjhlbzvz/YVV5X7c+/md5MwffLfNdFv+imvZt\n4Bwjnr8FErcHNOtDx8uvtd7532HpHRLh7xOvAxhxgAjGbsxDdUD6UVDgh7Ns\nd6HmAsfAMWGjh95vjBMlU9NmsizyhfVxTkFcJ46vVulZWcTRP/bhk+/6LLNg\nYQIG\r\n=zRnJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"62a2017d1a8c1f8e67c626cc4b24e9b83ab0e2c8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-62a201-kwbt8vez_1637654677311_0.31660117524458187","host":"s3://npm-registry-packages"}},"2.2.0-feature-14a9a3-kwc64iq0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-14a9a3-kwc64iq0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-14a9a3-kwc64iq0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d0af03d32c78ebc73614f99b57e0f8853b13c3c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-14a9a3-kwc64iq0.tgz","fileCount":960,"integrity":"sha512-8bSY50cIV9ck5qDUft8NLzpLbEeO90hQOJ7wL7+ni4WCmjU8lUa+y4jMtAyYlqpfSqCxyy1HkXO2S517Tzjh0w==","signatures":[{"sig":"MEUCIQCsrxL3ycrgmsv9PqvaFMbYgL7U2uqcEd2qrO3hyZ27kgIgCcgpJw1DwzCArhCRpp+AJK3HlMmsDh49YiTG9rnF+i0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnPUPCRA9TVsSAnZWagAAtkgP/1CrGbR1Odq9Ue3GDHbM\nUUaJYMqMj/HwyFgNC5jFKbiOn5HqwBPBVvWQA7tiv0iSDYE5ioXEgojLtefG\nc7aVqa2eBbekc0FLxKgsWxxjyMO7ubGrpaEDz4bwc62NvXufEgt9Lv3ys8oB\nvIO2nQUSce+KO5oBtwZX/gIV8GGWxkR8lkNFCwbOHLUkgm1djLPRxzy04dbk\nblJW39d4ICraSM6WtveWLGYR2j7k5VY5Zvseplf0ZMI9NZc46YP9Z9/Rutig\nBA0ZO4rOpzcxlEpvwTc7yjLc5nLhDBr9gVFq/BfqOGsd//YvqwyipTfJkqab\np08xFWaYQF3dq3v1wXUgCuN4RXDwzSQT0vL4fRZqJ1FOX69/es8MomIRHfK4\nMD5eMrN3ZQHgJVO2brRqTeDkEL0/EPZlgW0dIPs5mXPevG0/LtQ/hYr3j/hg\nxDQwveyq0LNaWh/M26suak87QaGEATd2VH4OuGEGeZyJPPZqjHkW6/oo95TS\niT+Oo15gS4be5ng2kaELxafMu6ASIQ6PqNuXrnnfSI1xvQ6AUSz4u5JAqHEN\nW8E+P4u6Ti7ubxDlmGSzsMAgzlt7eRituv+YASuc3NsvprOvhnPcXhLsf+f8\ntg/gBICZt1nnMY7eHzT7NOgOUp3WubgPX4uN/QzydcW6/tVF9agu3jgEFQgn\n+bmq\r\n=Lmeu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"14a9a388036b18fc064c6547b4469c659a5606ea","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-14a9a3-kwc64iq0_1637676302952_0.41585245475184385","host":"s3://npm-registry-packages"}},"2.2.0-feature-b741f9-kwc7jmmy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-b741f9-kwc7jmmy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-b741f9-kwc7jmmy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f045d52c247583ffd89ff1ef69bea8557840dd21","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-b741f9-kwc7jmmy.tgz","fileCount":960,"integrity":"sha512-UBSGH3TLOtedQ+ig3beE0vU8yCqKgb56yRinwBomABqVcLvxjAP8ZiM4C/JbnxtlzdZ9bnzRSjrETBppQeQKig==","signatures":[{"sig":"MEQCIFFXdxbc35Oqin6YuMDnZ96S3p3nI+Q1Iomn9Unwgy0uAiAQwLcJuIW5K5UfC6mJM+Aha6IjbgWboRqtRP+1JSZPfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnP5oCRA9TVsSAnZWagAAVq4P/ixtAPLOQO9c8YCDW/nT\nHp6e/0S2kVKrAItEv7A7izWGfjIxXGrjvANojJ/FUh851jV/i0tnNGqkkfuX\nCMVOcKzWed+uo2ei3ce6R3OSiz76Yhe/T87x2mpjGHA1mnqeylC+7OyA5kgA\nXaEz8lZ8J/haAr9EtJsT6FRdL4Cg8MOLP3bz8MfulUIgraRHXkEsTqWaMWng\nQhZOIPJbquEB5zm/oASGIH2XqGhdAtR/Qn8wYWDrYk+37+mYs53qfqmau0Sy\n4Yo7+o40mTu+yqwqORGFXp8ON/Un96Ti2yqxFx9iOaKPz11rnP94BCunxFEs\nlJi/vui6Q3B5XJsn4D48nDyaDTk/r4pvD+Sc3IbxyuVu1N0e+6s1/ltzUqUM\n7voaz4mGq9oxP/TNWwsjgl0A9xF23go28oO9ZiJHDwvJDRzvbLREwHVy9zJ/\nCyP1B7IbBq46KMRTYYQ9fU5h76sUBZtxwb88pzTEN3/dIJCU+nW6TBsZds1a\n6R7BXHrfgGbhfFkmmLhXAu9MhB2jYiwQTG9KrDzEHJj9SEeDteEDprtaaXFE\n4CyS5A/8hGsnrswSjY1/2UHFpjPGhLeHO4SO6GOhnK1YEV6uRWm9spEOb6Gh\nJKnyraAPZF8tydEIQ3Lh4bRGtqYT3VeAxNlZg8K9DrvbFNnf54zMRrDvRvm7\nHg6/\r\n=M7I4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b741f974d7557fefdb079a755639b4e0c716fddd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-b741f9-kwc7jmmy_1637678696432_0.4640140037772065","host":"s3://npm-registry-packages"}},"2.2.0-feature-6b5cf2-kwdoxqdu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-6b5cf2-kwdoxqdu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-6b5cf2-kwdoxqdu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ba1dbfb6ed89464ad9008a6f031608397f9161b8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-6b5cf2-kwdoxqdu.tgz","fileCount":960,"integrity":"sha512-7RwopNwvCl7ieC+eaLsz83/A4VNCVfvoVKNR/4bgTFve1JOgdeNKcthOft4A1YuGKVeaj3+E5l1Hx6BpiMjmDQ==","signatures":[{"sig":"MEYCIQCStJhcdkS6pXnlTnPnHIq4/U8czBN6lCviyGY7ow8engIhAOnR197JybKxV6Scs4H8U/9CudLO+1QK48faogqA9sHF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnlyWCRA9TVsSAnZWagAAiJAP/1wK9H00J+Bw/SReYtpO\naGEx3GVPyxTZ4SS6eIJsNd6wIz192KOqFKbIRYpfHKfHACQ3c+q/kecfvIFi\nPmnmXSIIJxoIKvNtzMZd6bpP6tCv6CBRFg2SgXF11mKhfQNdxWkC1uZGasCC\nyRmMmdikJzt5zPCvhindeHSJwOJvr3pfZ/qbXh7lZ6AIFJCOL5IfdD250nwP\neB2PyR4sVRb0og64/YOQNmSkJh8q/h574v2k/Y5lKQzsUKuGt1GVujneDk1q\ntSF7vAfRrWpvlLxbZgpj7gS662vpM+IHcjL0TqNTxG5fO51tBfasRoU6o2Xu\nU2eXOhjhq7Aq7Sl3EAV7olodmCpGgXmJHa2OT+dIo4mquxo3y9gdUlCs7h5R\nWPN7tzH9yVjUoxuTEVXGceFkbPFc2J+sMnBBWZP0/FNsZyyOMP46kWAzxdjv\ny6i2Zl3mBCr/7DqHBVnieU8raPd26c7ZqYe55OreOx1+mSf0gnVscIs6ewo5\nwo+0vyp/cTyk/CUNhLmppx26MYcG+acbl8MNpaKIjrNqeJufY2mDHLvmjGxL\nUc6r/C1Twnd8D//Ibkcrpb6/VBAMSXDwXwinMbn65u6eMpoVHJK5JTCTjmVo\n8RMavQnnDwsDsSK8rQ3lS/nxOlf6ao/fLspRmGKHfqCPRfpLV7wiIA4U1HLX\n/igr\r\n=KscY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6b5cf24379d3fed21d90dc534fd042d5318ab380","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-6b5cf2-kwdoxqdu_1637768341902_0.405795084016664","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.1.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.1.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"da4967e064ea8709edc34b93fc7354a371fddeb1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.1.2.tgz","fileCount":960,"integrity":"sha512-LSSjDhsgSHDPAb7LRlkCnyg0LASu9gtHLxgU/rFcm0wc8xS4PDUgt+tkfNVUO6QemBt7oC0oS4PKYlV/VcvCEg==","signatures":[{"sig":"MEUCIQCnPa/iTHR5lf8YF50TgoqOQqgD4nL/lwvPZyCGtYPhnAIgYT+h3lpCUlNBedOsZaHHommCalpdfzjNehH4lQlcaRI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1632780,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhn52yCRA9TVsSAnZWagAA7VUP/10qcHSm1iuf0aprFFNg\nkYLtrfZkt1BKR6Ci9vxHk7tZkL8MsnZ1kllGoFCVYOncimsLJQz48KTJjOy5\nbLQxidl6BwVm/QGA/92m5RTgs/3hbl10vtgncFWqF2/92pSh4yvJwFBqXAOw\nAvV98RGfuEAfS57jasPynSTrAlaHk0Pca48+zRYy8bUMcuNgvcKHQX1R9uKF\npMMFmIwwJ0bblTTrQG7/ei9eKQ2BMu65ixPUXIOik/3bbsd1JlwGfMJ0pp2u\nkvpvOEpshItaE71OJhHGAgDqZV8UaQwHhn2gxgY5n3y0bkRtCmUVmHcQgeGf\n7qjmFD9YIMnawvRF+xDhE0yTj84OGPaL8Gqp7W/NKcJG6QmHh3FdfbRxELAs\nAVbiCVs0GQbovndZwTDA67vHzZsufSQJqACvp8ReVQ8fqWl7Rzpj5BupH/ld\nL9wcYC5AcA/NKekiK2oPEBycu8+hKDAcOGE1qjyZB7BD3BU4Z/6fmlW9VV96\nvyfHJkJqU3QDzOG1ZG1h3YwHga0h1UQfm1qWF8yeZbQZzNhIdd/yL45MX8wy\nZ2WwEoiIspFCruL2tEpEFochQbTRPdG9t8HhrCXuI01T5JVDRhqRegLoADAQ\nxzGHtv/cbzKI64qhO61XLy6eSq+zOgOGPBvW9F5zrIN9hy1eIV3IBNOf1FFB\nqeWE\r\n=Syp3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"7403126622acc5e9f0444dc7ccb93a84e68f1e6e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.1.2_1637850546060_0.4963123896692909","host":"s3://npm-registry-packages"}},"2.2.0-feature-980dec-kwf20wi7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-980dec-kwf20wi7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-980dec-kwf20wi7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f7c05eaa62694b55958a3412f73b81fb9a96d921","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-980dec-kwf20wi7.tgz","fileCount":960,"integrity":"sha512-4Fz+4Ct6uq7GnW0kJkQ4vGOorI5F/DWIgFfK0qD7Sy60JGGQD2eDOw48dkLRAR6r2KQZFFSmn1i6CtyQEdSjGQ==","signatures":[{"sig":"MEQCIHW4oxtSCQDlWXiuEoIEy9dV2pttnADpoKDpHyE/w44xAiBytpFk59HqFWHVV6rRlbndDwXC6DDedU2faM11DAbcfw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhn56dCRA9TVsSAnZWagAA9fkP/09tn7WY1ARHu3V+61N9\nTuONwddvp9v7VVc4nKcikpR8etwb0Qz5o5paQ6P+JHTQiw2KHV/ewRbHqQYQ\niqOr3/aw2fmswd6jickQg4swi/TC51ycT0gXrGNiVBPQ+/JaqcoYsRcdo19b\nLloMsHET2eXADxxBhrbK3oImhIL4lS91hLypki/UvaXRTN2v32dbYAmpRJTv\nDnd3cNPMGmXXjUCzEZH44ozSyeyRtsOa6PeDTwYPF/LCR5nyO1++9MAw3pY5\nqEy6NsKyJO2uzZMgTqyV3eA0YQARQktcMqxSpX2XBY6PsTim/AyHYcQ64T88\nfg7KVWHvth0lRcgGJp3U486Cr2r/97CU+siW9rGrMuLQ6dTW1TnZg4x7BZnB\nKNAhFgC5LQjwyYleIhrc8WEgeqZ0IPTCe88rwjAt66m5UdFzPsI1giGzoUIM\nB1YaEWP4VZIvRhWca9mDBL6vzb9We50okTDX6mQcJ/raEXzS64gmjEGqe6Ot\nfBGX+DAhOJIYX7mC/hsK8noZK/GEOGubJct1FG7vtCuY0KaO21j8tAA/+T97\nyze8u5l83aNam+pGTfkDTZTX/BA6Ys3wMOQ7BKJKNPI3MWJS2ggIkihc84kT\nOaqMGogzw3Kx6WgLZgANBB5wkkXSSOaykVGavQ+OQlQQ1muvrq7va3+Zk8ue\n7pqx\r\n=h+A/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"980decdb7c4640622d68c65b04973b5e5a3c1ef4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-980dec-kwf20wi7_1637850781771_0.5873989614958961","host":"s3://npm-registry-packages"}},"2.2.0-feature-db68e5-kwf20qcg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-db68e5-kwf20qcg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-db68e5-kwf20qcg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4ce860fd9cc422a1bd24266cd67db055643261eb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-db68e5-kwf20qcg.tgz","fileCount":960,"integrity":"sha512-WAR9NvG14Y4v8jT4Y5YdiDSKLtyNdDWqHzIUAA6Y7toSuZnBPAoo2Y1Or5sFMHo5+j1Xa0v8W4nGGuypJR7S+Q==","signatures":[{"sig":"MEUCIQDK6ukNLzrFQXfGlUotE87vM/NK7RVrIhlmUURqNjfkZgIga2FJLA/taVe8CfQK/WhTI5KrRUB48AHPOHyFG0RNAME=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1638469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhn56oCRA9TVsSAnZWagAAUXoQAJsJ+us9IG8gErGFtcLq\naBFbntN1oSYw7qyKjej64MmUDUugqsCTkFc01j9azcVabGqWgMxag/X1G8q4\nUJAOCMMBD4f8EQbuvYTB6TMypiiATDoLMS5/LgwTS/b3rxDgCVVT+TzpCgpN\nD1aH2UAMQgSGiiSb/8jjG5PCvPL984c4unLzV5jdSFR8dUQQD+cjST1suJCr\ns2T0JaGX+Zehu6DaAw5Jf2fnjAvcYepUZKIfy+PK++FulTYTKe+BBZOv+JLV\nGx0yGgYhdUaCg9ggF1lsV6PDBzoBQ7WCqDJZglh3K0qZ/7v1y1H6Bq0DkQ6i\n9s9my5YfDPamjkgMP5Tc+NI8UaVFMWiYEKSNOat26ERRN6i0fSBtaEdOP5Vc\nMwDd4/G1O10ge99nRInwUZqFHTYIZdFiR9vaarnvOn7c/VA7PyxCmrF62mXP\n+x+PNNNsegaVE0MEpIS/N8fnBrP4DYsyxm5oqSBDvniwRWsS66vxbikZtE9t\nMD85jx2dNYhIuOB4dIqi6VZnXYdp1UkjwmXIiAvCKTTXhShSE28KWq4n72Us\nyPpp0zdywsy6l11z39bn3eiB+7IDIztwCS1NNStgvzjh4AANRUqKCMrf/GvF\nYRWhnhc7QaQjGjRSZQUhk1oqcUia9X9W2g3Qur/EN2HrvecOZ2CsyjynRq2C\nYrWW\r\n=Bx2G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"db68e50195aa613a23c86122b893fdd7ccd5b3a3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-db68e5-kwf20qcg_1637850792194_0.7767807503011046","host":"s3://npm-registry-packages"}},"2.2.0-feature-137010-kwf210yb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-137010-kwf210yb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-137010-kwf210yb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1dbf6602030c9e3c0d2a3a50d6c3d284d8fa45a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-137010-kwf210yb.tgz","fileCount":970,"integrity":"sha512-8MJkA/es+uf3PJqJKsM+zokPB5KoZbH4sk9gwjSI6IEiArHMvc4IgSNfySqARi5wiRKlPDhEt8rlslWN7GmlIg==","signatures":[{"sig":"MEYCIQCqTewhoSzud3dlvbLN0A6i+62r6wiY1WdHy3TNwd8kjQIhALBmN8omS6yuYIOiiSzawgDrCE13gx9jIM/AlNk3naa5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1638001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhn565CRA9TVsSAnZWagAA9+4P/3ZU1ky1tQiOIEk1tjC4\nBhy2n895igoYu2tLf7Z7Gp2q58iMkH2JMxis6x7pMdpCnm3wSmC9UNy6mzSu\n32Fd44+xZX6LdyxLWnbyq5AryT3jslogGrhbw30A+a4p8z0e9zILBCs+LWKi\nUJ/RIixbMJ0ousvBIvu9CKKKDU+ElyLLEjHlSPlv+xTuft50se/eMmLkHfOY\n1wXQU9QzgQg5NNQ2BMJpCIu9yewwObYnlWrV0yWjpQ0vYRudAzGeIsoIIHLw\ncoSVR62xmOCkoGYG9TMKKe+5/vQzKN5v8sYloNS9r3O4Vn1p16PGNw/9lruw\nWB2cqKKiNbBfut/Grr1u1ixKOobezd0tzl+e/As+g0dSsLNUOhb2+t2qrHGE\noeE3Yff7DA6zk6zSHCzY0vxbmEAoe/9vOAnmCVmZIZxUxzFhqBmxs447dPG8\nbcPQnr4i+HtSLu9kGefD3R0qmGbdLbrNvGGEk/uJGAevXzjm+GqNzVuV6ZyR\nb6e2EuXzCZpW4ZKTDr9KzfN5IXfhkb4RJIdIAUmgfjIjb5Y6tDWtjP2zqW9A\nGsjhoCRvADdnOo+IJBFgW4HYhQepWlfdop0wWF2EoGlRPilreYOGAlDPY7tO\nr4u16OU0nI4WBPaVSLdsqmgUpkvMOp6mxc9/8YyyscMLF194PCobfN2pa0Xg\ntjWP\r\n=H6VC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"13701036808af58bc26ddad41118dd7f1bc5a8d2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-137010-kwf210yb_1637850809636_0.4376853184495897","host":"s3://npm-registry-packages"}},"2.2.0-feature-867f54-kwga65ki":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-867f54-kwga65ki","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-867f54-kwga65ki","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e57cf7c7f093bc7c933dde8408492dc59e884927","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-867f54-kwga65ki.tgz","fileCount":960,"integrity":"sha512-qjakQeXjgCMHi25i/uFD7D0FugT0mawWnfc3LiGa+rliId+x+4CKNkxXsdG8yMHL+G6ON4x5YAVyRFauaQZOug==","signatures":[{"sig":"MEUCIQDaG+Q9lclAUXzbM+SeveetkPsngWgct/nTLaUmlkVUqAIgBVze7hOXFGBbEqowKlJJJprgqKI2jXk3I4mooNZA3Nk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoMBMCRA9TVsSAnZWagAA2ZIQAI6WP73y3a8mtYLQs4dO\n+pre7nyA8mtzm6yCBZ415T7ReNFGU8UgTLANn2hSQZuobibtpbnrIJUcdh3N\nqeZ53V/K6j+6mBGKlfHUBV8ogB7bNiurPKnNY30pLwkVNvm+wubYWtMKyfre\nrJamViPGhTWQqNuYcNfUI/aG0D9nvIqbtIM3EDKnvcTFhXOlqtVotiIQalfL\nRucZUB5pD0OKmyBsgxGPzpEBXJtgPD59VBg4oWKY1BKq0mXo9kkiVAj2BpUd\nm3O2tvBD0HeSjdp79PF6Rxfcv+9CNiGK8sxxtlmnQ8Z/uGtN0S/3SQwvmWCn\ngStvGsM61HIhmzBrZW5U5hfvIIQDC/oJEcBWXkxfQS0hA32lJVjWqWs/l56f\nm2crvvQXiNn+JYXBulsyD2yB94U+rGq5aEqDGFcQhJv9ff8sCfUoXC6H1fD+\n/dkp7rJ5RuzZ8x5hdBsGOBARRpux7+oeDfyaTcSL1j88gAP4MzqLwOfh0J+f\nYN6my1CnriyNZUJDWc95nGgxKZ/kgP7buk4ljFOd3mibGLjGERrRmpD4N2XW\nQgMnk2IqN8oPLdfoQB7kWMGPmJT5QUbxFMA7w9EZ5VY3SUMdGKf2HIBCA+xm\nVwSZ9VshdBjaoVLq2OO7tNT4kre8BCeLZRLo6IV1N322zPk8i3NLYaNfGdLc\nlFuL\r\n=gADe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"867f545f4200acdde1356401a8f41e68b8610f67","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-867f54-kwga65ki_1637924940742_0.38268889008128126","host":"s3://npm-registry-packages"}},"2.2.0-feature-ff0300-kwgb5059":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-ff0300-kwgb5059","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-ff0300-kwgb5059","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d7f78068552e619b6ba7d2827baca3bdb95380c7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-ff0300-kwgb5059.tgz","fileCount":960,"integrity":"sha512-SLn58j8KFFlE9aiUZVhphxabq3F0vIICuHWsC/r+zd0/LUWnmE2TW4MXRdaf2Dck8tbo3SMHhUfE3CpHg4iT4Q==","signatures":[{"sig":"MEUCIQD0lHLMHqYn1tSD5sYamHLaHj8ybdJiT0MzCwWEUgAOhAIgNN6o7qTa8vRVBERrNF5oXDEFyV0/A9eI9fquG+aC4Ek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoMakCRA9TVsSAnZWagAAhtwP/AhwZRU+xXYaxQcDJPch\nACzhja922lhcIE+wLkd/5Nl6l5BbiQc7UhKtFqJocOSK2o+EsjFDPdNkl7KS\n9VP0YHodAmuo6aNxiPT2C+k5aOuRnsMV/qttwEGyNGR43NWMwbVDKaUunBtN\nm/c/kAadoig2Tv4BKeoVi+i30M8MVYAZoC1AMIh2VRXwAwF/hpGANt15y9Go\nIl382+Y33y1Cec7HOPyhydowqWNdQdIXNzjTOhhJxdo8qcxkv7tkrJ9Ycnad\nK2prqZTSoLxOfvlT9GafblG9hs44V7PJGgQ/x1OYLGMqRKf43J+hM/VVD7TJ\n5u0LzYg9sQ99mKwpu+7zC3clf4dRJ0oIgK8VoeBxu98GiptS4wB3fH4KGui/\nxF/E+LZ+HNdDxMsqpKcQ5bmvMnDxYr03yCFld62criv529gQTzcicGBM4tlW\nSRyPRpm90YBNyZPYjsBdfGhPqB8B6KBBtbuFhS5yH1D7PqVddVRb3mQBkzGJ\nMVVzVvVYCJn36H2Eb3nPpbvNxLx1fEVZJEwMh9TK6D1bnKT2zUoHGiAPKdy1\n5CDeHC7NJJ4Ph9/0MXGrRn1+kVSJBeg3v5xiZd6aXUIm8OXx76gUDciNsGUe\nO2DEvw1xgSse1cSAuqk44okEDhO/dhFnrx/0M4ZH1U8OpSwmONOIttDueiaj\nTqHi\r\n=Kk8u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ff030067a331f4834fa398ed16635a95dce4e083","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-ff0300-kwgb5059_1637926563779_0.11501148150681484","host":"s3://npm-registry-packages"}},"2.2.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"946b553527a18642ca822ed317c21d2d63f305bb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.4.tgz","fileCount":960,"integrity":"sha512-wAYmoP/S4VZyI+tdoy3IHYQfuJoVcnvCpAwIuwuP5+JrTz+n2EkpIVlDNoCNtIfJVTZSMrdcAG28Gxsjg1XkIg==","signatures":[{"sig":"MEYCIQD4P1qV1WrSfiIBEbx7xaLxee3LSM4b+vuJ8OSlXv1d9wIhAJeLRFB1LVyddERYEAz+qM2rgfj2AVdPwmK5lqDG3KJb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoMlZCRA9TVsSAnZWagAAxLMQAJ0iYLOFcVn/RYaBDNWJ\nBqDVxAti+rVsPnO60gL8ot6fHKQuSxX3Y6DTAcPQB2i7/ouogOxW6v17q4ci\ntvDVHJfouqSco8l9rMHtLqqfL0QzqFS7NwEn0fn4WNlosz8iatv6wFX4cCAb\nUu6N2i4pSIn9JtwtuurrIOAvXFm5qVFfF6thHJBeqL00r2d6XigHvEM8gD2H\nqfS+CXKuVtOHDZ8Di/N/ERfFN081ODYvB0m+IqFWVC3occKCOXPX9twCR/+c\nghN5xvBJwMQuy83dl1xUUWwVgrOBN3iLotKbs0L7skOjHKWb2XEzW7PNiUb0\nGafn+50OloUj9nxmBvMRZQlNjvJY3Asdmfr0LhdrgeeWRNhqCm9K6+uWPoqh\n6pGA1DOS58+1CSajOQg3X4erPER7eybTs2w3KFA2Guhf//bWNayUZdnfJYUr\nw9Si9EP+8BgRqEsKFePUAqfCwk1ayU0XPmvB9yKMsJ1jxWAnNS4jxEm7HhV+\nm29dCvNjP2w+G1+lFKfan5tWVxU+s7ed7b2ipuLt+G18kcy0qBF095lYtth8\njfNqoGqymjg8J7INY6dpSf5/Ao8sdJn8u2ifPbK0ZrSVBod/NYf1mD+H/xhG\nu5ioFAIzsZ6YGdNnrkRxJI/SdUQ3eSPsUArAhMzpFP05lHNdhethZHpOczTE\nQKh9\r\n=qZa8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"82d96810057d5929007ccb4fb70c241103bd16b7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.4_1637927257760_0.40731734935806796","host":"s3://npm-registry-packages"}},"2.2.0-feature-a12917-kwgi510n":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-a12917-kwgi510n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-a12917-kwgi510n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7af4609218d2262cfbc5f441abe9e2609d67732c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-a12917-kwgi510n.tgz","fileCount":970,"integrity":"sha512-j6y5oDVo5V7WQ0yNMU09SJW0f7pNj/GYetfkVR9cGvyuBxPP5PFS5paNXJ9aLH4viodHA/nxBzFmjD7DQl28tA==","signatures":[{"sig":"MEYCIQDPHxpDnRODzBZobn7VYF53D7C71wk96WJ8v5ZbS7uItgIhAL2ID/NppFgHaT4b7bWj6d6jaocbh1x35FOlkixiXXzw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1638640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoPSqCRA9TVsSAnZWagAAhjIP/iryOTjO2u7ZoAWq2/3n\ngA75dmfWRa5cp+MiaWuO7GfEW8wazn8SfMrvcgjgGSCWojNlgzqHKxgmeose\njPAy614fgy31mkT5kDN7vax6Kb9DVW7RRE23qFrxvgUGpngPPeWtFbvx0vz0\nYkQdAD7U4bV2gwD5MPLkJoH8w+HVLvq5xBfSUYaIRQku40F2udRiihQ2kXU+\naGjG/O3YsPVeVZ2w4q681EmhydgEakgaQwMXRFWM3IZ3dSrGdTJeDeVMfT+Q\n/fx0DuZHrarlzbvHslATaQ2EulLHsFTvKMiQqUh19Pa9tsmZ9cT43UhGGxFC\nvZWTTk7xVE9ACdBeaPPc2hRpynnL38bWYseN7fVWE990mQDWhwwfbfQhwXUJ\nJmGnEKBjlCL+92baC7b93z0iSnVH7N7+E5sFLqfZGrkuKoneGevzejz9KetW\nVVjVAgZFqRoJTNUgEJm0XhXwQJhgMM2xjkE+Q2i7hw5kqWZ+AGlIfg9xWS/z\nVnbl80grlKGxAy5nKp2txYIBkIpR5vMtNenrQEkp45Ymg0376vPIOBH4S2bW\nT73/+ayXAeFmMO9ztYzdRP+dFLr8pqW2kB3aH+80nD5EM8ixf8A3Rll+lG6M\n1hFVvicJWosXhssjUmCspXzKEIYKo3C6rjvxeYE4DGu2HYelb4Mt8Oos8z+5\ng4Wr\r\n=81MU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a1291770255402fbbbd6ca414ec766b8ccaa6c8a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-a12917-kwgi510n_1637938346373_0.9269275216722141","host":"s3://npm-registry-packages"}},"2.2.0-feature-1cc3f5-kwgi5cwr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-1cc3f5-kwgi5cwr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-1cc3f5-kwgi5cwr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ec0ac56990d0679b9f273882cdf385ecbd2d097c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-1cc3f5-kwgi5cwr.tgz","fileCount":960,"integrity":"sha512-sCH6K/D+J7ZrR4Zlj7WJ+qKNK28+g1kzvOW46N8D/+kV+LjTUqOFNicXtcQ5hjklqIAkpP1UoL9nsZcdho+A3Q==","signatures":[{"sig":"MEUCICSk0B79EvDspzPsIXDla/RXxP4ESxnHJI8S2hutbNYoAiEAv5ZbEGiYNbi2xV+TGCTDNqN02OulzDOUQw3CpmQB020=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1639108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoPS0CRA9TVsSAnZWagAABe4P/1mI9f96N8TSf7JkN0tH\nOEsMcVCoWE29ihjYbE4ZdMKLnGdotQCUlKaGAFKIjnn3tPOSM/0LjjIzrESR\njENSCa+SIi3qvr41yyJQ9prM0HuaLglbNSCvOU9FP34sATZUiyMC9rOXaZ1N\nnkxVR9i8hDMN00/gQODevQN/uvNHkSmGEbNNJhjUAgSWvuOmrrfACh0SBKjv\nnIRrVqMDgZUCNekGpta/i9lezwbjINYEV9vTXWxtQY1LflkoWeTpffgaFpQb\nce2Wl46NNDMdATI3+57LFCXJ2ih5CgbFv/+fEyWP8xYdqUhVjIrJd+QVy6V6\n23vSQR61v9QO2015JE2SGw1fmqQ9DlqBYgDW2yPt0MHquALYF8DSSJGOqDEc\nw8qQn3gbkT0RQUS6rRcs08G63MCTf2y1H22Xv2DEa50pxMBsGMRr5JB4ixAo\nuIh7cmz9qmHwt+1xr6KkTOERhsRTIBmyGw6gCNXlxKWY0L2ZgfxdK+V0DLkH\n3B+gNPQherGtabvVQD3JWYkySud2clQeer6rlNsXPHkXANGH58vp5OB2+TNj\nt3gspMC35am7IIxHq9VjtpCMWhpUY+cNSmrkenHI7VOnCQvzS7Nqg6/dTbhk\nRkDUebJanuJvBx8pLDcIqDOU/QBQIa1/0HrN4YvpkQIoNn0HKFvmY1AGHM2J\n6/SA\r\n=wTdp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1cc3f5be7df13f7df4e00330c428e773a5fb36c6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-1cc3f5-kwgi5cwr_1637938356461_0.11814878909456783","host":"s3://npm-registry-packages"}},"2.2.0-feature-b9c8c5-kwko1jq8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-b9c8c5-kwko1jq8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-b9c8c5-kwko1jq8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3eb9ad41297f8483d27c7ad3284d646575da7c75","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-b9c8c5-kwko1jq8.tgz","fileCount":960,"integrity":"sha512-YJddBhY9cdGHCm0rtu2hcEnVIaiO+f3gMakDXmgRqWSV5CA1VTdVI7iCot8TWZYXhoXPbxFud3b2H2GUrK6XzQ==","signatures":[{"sig":"MEUCIQD2daVxB4JrwAGNHAtsnpmBaTi7ItXkAuWzbnRMI8sUVwIgeG6ZsbkNMJSUlReK5x/KSdOuokBdULGQDADhBfGjVvs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpMwbCRA9TVsSAnZWagAALPgP/A0rr6UTeeixam+3gRvu\nu6b44T1kN3AONRCWLueTXGA6aXs5AUmjZoHwZ7VzWD5AKHoxtmXr2ykHpa/R\n3jQiokWxlfJck2oZ5z2ak7RdEuH/KkSwgbQySBXhQSSR3h11FKtWsnZukxrc\n95lNc9+GTJofyEuuGJ1+5rAt7rsvzHcxEkZUaBDsHMnb/hydWo+BPSgrIjIg\n/A6oTXBPBN41YdoTnwmfPMx4264B563i6kaP19/bVwtGwT2APv/t/9IoWL4q\nIf7hUojEXjULpWM9kyS+fEEVMT66eQqEHyWrPVifSlYR4hEH+OvGO7DA2NPt\nwcXMs7aNpbM/Zjhwu+FgGYkcDcS1j3ye02ctKr38UiqX/e9fC2JxiSKgVpE+\nuzqzzkwjAP6zDC3RXNkdryryfRCvdzKJ0HP9QBsmVIMx76l/elpZkfPAF0UQ\neEB+DUQahYWVpscFfL6gAF0EN3MDa/YJs2dOVo72n2MZhYnFN6wQVGw9Sbm+\nM5hWMiWQXBSYMidS7h0oS+oLy2+4Q5MmxrDeBSFB44sRauJHNVo7E0FOCo08\nfU/4mMuaVtxq7wB+FH2YoLdu1UI7V2GjAS/cl0bfhiY2KnDNYfL0tGHwOMY6\niUqa+w8H02v18QtwkRAHNAmi/pNJHsplPWGC25zeO4cYRQuXFZR9oo2jVHc5\nA4jW\r\n=8DFz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b9c8c551a12c36137ddf1db417ce1fdbfb3afcd4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-b9c8c5-kwko1jq8_1638190107540_0.38691074812582316","host":"s3://npm-registry-packages"}},"2.2.0-feature-201ee7-kwko414g":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-201ee7-kwko414g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-201ee7-kwko414g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fbbec97f1a0c3f9313aebf5104a58757fe01743c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-201ee7-kwko414g.tgz","fileCount":960,"integrity":"sha512-bC6Wmb/6knOBfRKbi8ZcACrRu3YwVDq5cKKv/S9uJ2+qeDmuz3f+K+ZGjrQsP6w40uC9gP1adoh+4yy+KyFLig==","signatures":[{"sig":"MEQCIAyZWCxr+EQPBDGrRwpjHB4EAPwpwQTz18EyqSKyYcivAiB1TBQnhOag1LfIIkyxMSTPGcZ9u3bAV3lupPHj/viuxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpMycCRA9TVsSAnZWagAAXdkP/RDtvww1LTWkrFwbtbhm\nU+xCMo6DZVbDTdiKRG6lHda7qSvD5ENKamKMrOr0CCbStVt7MYTYNd1cG/nZ\nybiBTZmYM/eOGf7QAsgA0oQi+bgeiMj41GYbs8ghZ4xQ0hPRJjOkzua91d+v\n6Cf4+ESMKGstbtCFKKGkrgEDqw2d3UCVbLoVSUsQ12eQKXTLdWI4XLB56F7s\nRvdbXyPwvm+ozd1J5XSrPNZtSyhyM2aJRfl1PEG92aop+QPxvL8sPnF41MuG\ntY+G4sLtfszwuJOT0WgPqo2Y40Fth6R1AuaRUXSdz8V8N5XhlOc0It+HovQ+\n1KMRwchoXgRYD9l1UI07+gxmSTbzS7i+c3nOulGV2CEB10axbVyFx4F2Rkjp\nteEk4ETZc3qD045L/H0Z9PvtoexxXWdy0+fMrGC/X2pM8tV2eXizHqhbx341\nJoQ8s3venAN9gIOtDwIQ4q3pclayX1cGKfPHh9rztQXnWMO+nSD++CUVd1Qd\nKTY9VTnSgGL0v41i1n8tTjg32wgAVkwfg/oIgW/FQBZzY0re/p7FEpzHBtG0\nX2zqIKP5nC6gw2yYdsP58aEHerNxoPPkxV0Aa/LaYRExqbwfOxlCimpendiH\n32ap+1FlH5H/93hildJBFiquDk/3zpePj2mdcc4F5r04YOkkqfAiVmuZEWWl\nah2B\r\n=grNW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"201ee75b738247c899bcc6e27622608f9ef8c864","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-201ee7-kwko414g_1638190236464_0.04967543050687695","host":"s3://npm-registry-packages"}},"2.2.0-feature-d316de-kwkomo3g":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-d316de-kwkomo3g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-d316de-kwkomo3g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8be6be277d33198a65a9de0c2faebe3c29609d6c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-d316de-kwkomo3g.tgz","fileCount":960,"integrity":"sha512-973gagG8Brb37Z4hxxiPjBHlsftBOzYWysI/OBprmhQxLMv7gFKBGMUV77snYOqG4nFcW7E10PDxN+8zMkwRqw==","signatures":[{"sig":"MEYCIQCeWwYGx6gNDeXErAmEzdnPP9UqBuAS99rl+O6o2CIi9QIhALoR2d2r056qIV6QhMT0MvsQgEiQWiRsq39QRV6sQMsO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635038,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpM/5CRA9TVsSAnZWagAA0akP/0V8S8r8/A1KwSVpqi8+\n4/bFfwEw3dxLnnZOL0MGy3dyPA/hjNEBa3T9l52AU3fyuGYrQeqlVxbmrhvT\niNIC6FE4iXHvt3hzrCx+YPkeUR9RJjiyvYGEgxLeWjeOX8Tvp6GuQx3R9XDx\nVymiqKoKdVLuV7/Q4WbREUHJDuMn0pG62aI0Z6F5r8f2o1s57OFh69Sdia9T\naAzDy5MdPIaGLHLIGVtaqk5a0jK9UH7KAX/EffSORzGerGyBRSyIT2mgsjeJ\ntMG7E0BmpYSAlmzHj9NV7GsoLfvwhPvhH6soQsUMM6Ba0VF/tZhOfqtjkAJA\n5W8ZX71Cm4PBPEcNnI7I7ib+0JuI+MiyJD2PrlzCSIVWS0nobeffDi7s49aW\nqV6Q81wXi7EAINOIG9IP6bFWu+uqekuu12Uc9AsDv4N7pHWYaq6lfsyYBhBZ\naf5Ffu/u8gyUZVil4uiNpqykVfplbap/gD2Uw1QU4P4HJgdJuMHshUWpHCOB\ng0dPcYdm8iK+pKKNyacHndNmNXwPkkyEv5HCnnHcPdf84GJAxD5SvNxSY2Hy\nI2hi6g9T77ywIoC+B7SR2poCjiN1/VU+agY8dwpD9Ry72R3PcpmLuztfdFPL\nAPBbqApmGz/WhhyO/m7TR6gECaS8+dLV46lfMNtt2uckdwZy0rDaKyReJmd8\nwffP\r\n=PYA1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d316de19fa6e2c9063749a1dfe7d3bf69cbb67c1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-d316de-kwkomo3g_1638191097429_0.8237516253668675","host":"s3://npm-registry-packages"}},"2.2.0-feature-72735d-kwm5dckx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-72735d-kwm5dckx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-72735d-kwm5dckx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d008c4e16b288f51799946ada2ef7d942bce24b8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-72735d-kwm5dckx.tgz","fileCount":960,"integrity":"sha512-eZvcRftD7o7e8xcbVqZ6DlHF7UE3bpxrFZdtgK1m8HBrbKfzebw8125MkpGKzktC39+PrEG4JINmccb2lbYt2g==","signatures":[{"sig":"MEQCIEn0LJu+WCqITavbey0NVZ26KrbiXuEYu0cJohfFuBAIAiBfruTrU4YQvLnVOJJEwxWFCHz6NWs7WM60R2EOsUeeDQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpioSCRA9TVsSAnZWagAAzG0P/2nHl4Fy/n3ymc7wkOgg\n2S4ld8qo1UCVBb8EAyPJTzEFQz5Mw5ELm1/uJgOANRzualDq8TSKT/NBic42\ndmE0oQcVVYYRn1cysHgvcu/G3nAJ9Rw3s7DPXbpXhTOxE7wQt+W1AXGAT93w\nBmfts0bfunwFSGFOal0CjVVB9OHlgZEPebeZ/K1w2+ddEmWoVjMtw4ZI2BwD\n2DIPIYIN/9ZN6j/q6raNSnDZdeLOs5zlpINC0uGjx+Wg5izo/qXoKBHyZBBG\nvuacm4ivt4LP6Tik7p+cbmCwEhsgmlyXBD7v3zb3Lh2XT0MVQNKsRFiflWgY\nQS59o/xiNYkPx+ZsQxwdzqZKla/DCFIQYM7J3Q0D2qKE0kfi201wFQ+cR9/w\nVC9Jk19OTNteyBuub+S2VZlWrmzPztKyCF56O+KGkH+EmTT2Brl8nJ1bsW15\nRsivucZ+kIpvsyfOgjGHt6PgpAjwNpYSHTjJt/nCo+tPnu0VoQ5pw+sMNjxP\n+DWIsmtbo0t/2h+mJp/tp+bIaNMpKOcPdr7ruNIlY+82XoXUbKdsL+o2+oxl\n8+Poi+/sJqPi6EpnqDqh5waKbHCrkXLPXP/+nKCp401pdaVY2yY8dF2pVSMS\nRSGAdYgQ7lYV0D7CvEq1C7yRHXGHl6/TMuUqKQ9RCmOAQPArxb9807/v7lNj\nLbTT\r\n=danu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"72735d19cd18942abf595a9ddaee9029aa0f357c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-72735d-kwm5dckx_1638279698190_0.017556216096015875","host":"s3://npm-registry-packages"}},"2.2.0-feature-27552c-kwnf5qbl":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-27552c-kwnf5qbl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-27552c-kwnf5qbl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cf6d8c65c520d112915306a9f1dd693e5886a0a4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-27552c-kwnf5qbl.tgz","fileCount":960,"integrity":"sha512-2XFu9N2ZEjZqYSBenwfTt5I6x6Xc4Y6dh4GTAbYjS9yuq3pZ5DRPSHFs0qfmuJz2onysWR1BXMjPomIs3QYE7w==","signatures":[{"sig":"MEUCIDw/7ZjgyW1sa7DoKgbiHe1y5I53u+LU0E82DU1deiZFAiEAr20dNRZdco/euxSa0fZncFNJKCOxnYPbz5oJbY0Xhfw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp1ZpCRA9TVsSAnZWagAAxf0QAJqI3DZr2GBt12VEu6tA\nS0dbxKGuJV852Od3Ars6yJtusHQYT+IljV5H6lZc42NYPQ2TIjyjYF/lvHPb\njhpPVajLo7BwuzG64aulzATE6vRn6cOukfJExM2Iq0Bd0bZxScAwdW3g+UjA\nrSfaDGQFjqhAtp2iw8HafNnl45qhfTuZQujOu1BuNvxVj+4e6MQkwI4e7+xv\nqDbJc/QgR7Ioe5OFr+P3/wqMCpqVSZMOqjfA2A3gRQZF4LlXPxIeMI3NgxVP\n6pLwqNKo1MF414g9AbHh30ybHHOIe36FluHqpCUJFGOoGsT1xBpa9aCXwSJ1\nVqS3XpaIxZbTHvePaCpuGhfaR/h2YdyPb9ha+cNa10Zw0uyT4UHemWYlkJDg\n0UW+/JOfafPZAAnjhkdQdip8UDLpGPehf9buZxcA2m2BVhhC/VZnDvktItFk\nCz/ikJH4EPKwUGkwyt+oyWJxDFvtV31ZeKPacJ880I95McSABtweLMY/xUd2\nFDQkx9QEK6XvsNSVy9XTHoYDiro6kIJ4zaJ90kZ64iz4dx8q6j2WkRSXdADh\ndYoyI8pJ3rA2PA9O2KSSd07sDMyg/kqtcfyvJUBV8/wS8qDRtv4NJDv8/Wjt\nHSW8E4YhZGSG07DU3L1rM4qU+0qmIB64EtPOh5BmmGLkNDgpc7RZq35wE0DU\nweKL\r\n=kbxC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"27552c615946b8e463c3301ddc60bdd17aa47e0b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-27552c-kwnf5qbl_1638356585719_0.8949114332203361","host":"s3://npm-registry-packages"}},"2.2.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a533e14b9575825d1c77c2fd6dfd8721684efb99","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.6.tgz","fileCount":960,"integrity":"sha512-cx894bNSM/woBjJZ6NuatAkojDkC5EP2T90/JfhTAVwM/uPY2wUIqhZ+cILhKJwHrszBN5XB0gselHd+VWtv0w==","signatures":[{"sig":"MEUCIQClV2kwtAUnVUW/nXwGBaK2Zooj1IgmiK9Ls2dieZo+ZgIgXZsUuqnVaVotTUQSrQwPnVtt8atD/y24DZx+XpM9FgU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp38MCRA9TVsSAnZWagAAj0kP/iN2Y0cF5OIqoIaM3jl1\nZBFU27aPCsKFaquznZPTXgbUiGUFooI6BmBpA+TsTOo8sbieLvkcpYMOCMdV\nHsiqa0szgy6o9prV+zYHnYOdBaLWsykirsJEKCCK9Ux6nW6q6RxXOX3bVNRF\naRKfq9eRa+mHcoZI31esj9W9UzZKwPJEtWyuqwNa2etp7mGPw+7lR2zlgq9n\nbbdsNcanfvCTAedISeAN7NRBvSHcoia+XuD+8qH6kP+XdWw7dQvra7B/hTFH\nSNzy1w7ZXOUjLz2jkjCKEIOrpk04Esux595jqhX51jvuposgBCT6+NhWCysJ\nvLnY0t2ybdJ0UL/2y4tNGtdKFv3Rl079oT2rfRazeyucP+GJ810RRRgHaFZN\nardx8TWzLgwCdpMPpQIc1XL8xQdFtEHoBbW/hUTrvBHRWcB/qufaiDTkGzMq\nEOlEaNgjgv2I+NCoAPY9vB3HeTZklPVY7pPExHyvE+5nnwgXIonEx/g0s+/p\nekK4uuyWmBQzDDWO36gqaJdfB+Os5xLI31n9qi7drobG/0bM7uoXickkn0tD\nY6FaMfVUauHFzRhu+KQj9WyaRp5+Cn0KQBYW2pa8H+Yi3IxYsJhsviOPlMCN\nX8FKYhHxS5YqgicDwRi7s7rmRDnKUsyHU65YHfgX0Iv3EI050vPX4NQabX2R\nFzCM\r\n=KyS5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ae920ef326b6983ab846889f4d4b48e5fc42ab59","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.6_1638366988621_0.5792561777917937","host":"s3://npm-registry-packages"}},"2.2.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dbce0855a56ef11932258828c8eed4d278464b33","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.7.tgz","fileCount":960,"integrity":"sha512-fWXfmuypkiUkfk5RSzKJfKgL5iylvYSOwZXCqFKBX0V42I98V32PPEs+2YxCAPfa5S+tdhZdM+uG4VClUyqGdQ==","signatures":[{"sig":"MEUCIQCVHPgTxlZ9cG8GAkEQoCUksW8x44D01YOy47VN8G9ijAIgdtVKHDLeS/MWjzrUH8F9ry1n3lZoewU+RTr4cdAg3cs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp4AUCRA9TVsSAnZWagAABu4P/1cwWBXrrwW7Tqd3TBgd\ndpDBgU9dsW8pShIhLlAzb2IvBHqqJ+/yTBeP9bmSTozHLkB8gCqo3Hxfvj17\nymofCyT+5RtL1T5v4C2g1gOJESURx7I3aK5aHmaAfgLVXwZj+diElUpDo+pm\nFJAGIwbNf6CzNBDpy9PrdYQfm6dlVojgpulYDa5iYkkTWUb8N7sQnaLDcIr4\nfIWXLQshOsnqW/xHMPFfgDdf7w+VAmfZ2JQolgQ5Y52aGhaWaitxf6ChZvXX\n0rqhsjxyVhx+w7fDiotdZkUTLDp5lY4O3r74QLKXyOkhMejyOje5/zrd81l7\n2LHC9YrV4EFbhnE7q4QIpmiF0lWhKfLSYS1+3gwm6cy8sNSnQ2UdfuoF7z4j\nHfbo8+M/1ppn4a9F6o167frOv3SouSKd8FMDv/6Ll85iec6MEwDOAIZBOF8f\ne9HXzqYESaeUt1wAY7YSjDFogYp0Rthjv8gbIfzYiy37MCcKKeONAiqkOJ/J\n446161VM7G/8sS1XY9rb6mFd4coSTIkRRovJcve6kkjsUhAlLysrQTeI3/pM\n6Fn4NFXWPFHopRYbmtcRg5cVQxD7G1LPYjuEpEMoR/Jy27qd99UNCP4XtmLO\nJK0JdEt2koonaNOJm/+W28j8h9KLvKnr7GeK14LzfxfTS8DGSUsXNnsZXiY2\n5X47\r\n=rega\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"382d83c3275ddc4d0436fd41e6782ba98018f589","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.7_1638367252119_0.23140947169808324","host":"s3://npm-registry-packages"}},"2.2.0-feature-660ae5-kwnluzia":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-660ae5-kwnluzia","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-660ae5-kwnluzia","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"28ec41c1ea402f5791471b5f0f8e93bcc80495f6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-660ae5-kwnluzia.tgz","fileCount":960,"integrity":"sha512-SaUj9nDYp4kUj2A0YQV7gCSY8v2TJ9VF6vXPSULyYqj068fYbdGt/qd6dSIisadc6j3SoiFRiUViCoxQJL9Ncg==","signatures":[{"sig":"MEUCIQDxgDG/Fecj0nCnQ6eBGwwX//DdCf12sDVRBT0qVgXwCgIgcYAc6ILjC9Hpy1fes2DWFsrrCeL6JTtiWpQNfMSQ/Zw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp4KdCRA9TVsSAnZWagAASMQP/2dmzkrPF8s4VnCtMnaH\ntixGkzSatsHLoPCrdXblCMXePEatUJT28XY5BUfvg0K7Kzg5MjXriDGg3b92\ncaAtvpiMu+7OtqDgkJCnGJV14Hcrv/YHHu6Yqur/weM12n2eqrmM4mIOYihU\n2qhA0C2DvK4U/GPnzrz/634DHzUVFVbXbXzvD7DUz8kzt1ppn9My/qVqa5Ba\nL1VIfSsH/wRNpT2HDHEU2pjGGLNiaJpYgm3+TzJGt4FQrzT4HS1P9hy++mDh\n9jK6mvL8I3iEIsBp17DDxOp6/5rvIKStbrcbDj6gWOJo6YWeLqwUT5zoAfuE\ne0RM42h+kgb8LviAEcqCVGanyqOBWpoll/1ylh03PGuHtqnMJHvlrQmHObqC\nXQBxDyIK9hJ2CG2V51COI+wMndGxSwftI31pxMX6DWnws1vlCdL0cU1UV48l\n2G0QBO0jtlR1KDbHVmB2dR3RyWccDhpP7nWf9QQVjH3CjCtIGiC35c3U/kzN\nI8TbQxjJGw6uZXMnNaXfdXhGmwqQPYOrcvTwz/yCzBHip+OzQqgXyy8LwEH1\nWZs7IGbHS+RfLFoXBybUZ1x78IJTZltJrymkCSMwsmRtBUbLmYF4VRQBa83A\nf2Ql8j2u6qpaut41HoY0+qFTNCAUOlpfq0Nlaordk1l7KS7Va8w01tRnsEub\n1whW\r\n=X1aQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"660ae5631e587d6fa7294e74a5a7f2bb84c6b6d7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-660ae5-kwnluzia_1638367901084_0.28216442948286136","host":"s3://npm-registry-packages"}},"2.2.0-feature-d8700e-kwnlxgrk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-d8700e-kwnlxgrk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-d8700e-kwnlxgrk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f83f7d93b51e66fb1dc0d310030bf576ebe55ffd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-d8700e-kwnlxgrk.tgz","fileCount":960,"integrity":"sha512-JEfTb+nE5YssJ7rYhb6lannqFEyoi02OrCPYppLCZdck0F3tLGPdrN7qkizmKOkx/nfrtzHuYmPxNoJo91zd+w==","signatures":[{"sig":"MEUCIQDfgK3oX5KftlYd6te61WnucbKjacLfVLmcRgrHbRD+TQIgchtL941gvQZaOWdVmfKE/2voMh/d+7fC4mVJ6IFOtt0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp4MMCRA9TVsSAnZWagAAulEP/jHY0ERIYIlH8C+rmEez\nbZYJXMrQnqwFhoSepJ0CegNqW+PluYr4U3RglKJ25mUaKmidnwKowZ3K2m8p\npBaO7s5WanHMbmPR4vw7IeDlngzpJKfRfHlmq4oguXulFOw9Iw/rTJmybUn2\nvGZAV3ggIiHNgPJLTMOGrtu4innWq113f2LFvTJaA5kqfAp390GkP3mSQqXD\nr+7U0oAgLVbybFkegW9hfvSHO7Ex+i0Tt2GAv3WUS12mi/MZGnIy8r0dMnvd\nKRDBk93dJPfrpS3zzBOJ9V5z3CRgb2RRpPRNfaoIU6gnIMi1GO4yrRwbT2gP\nuTn+hS4NFIkt3I4CEmglS1Zu0h6gA+Afmb1yQI2dXOb8M4l86bkckYbNz5V6\nvZGdMKrf4+ODLC4zrhrOTAhtif/+5VWw8ByLc7E2bGppGTUew2580ytpYAJv\nTM4fQI/uuqTC2cdkoXyZz94AgqnqrSGU49zXT5+LsTi5pPmY6i9fT/IgxaoL\nkLyFiU8+8J4+JgjNVOR0PuJn5y1WMsyF8F5FdMwjZRvak8KozeHqDnyzGJg7\nMu25Xek3nl1TjyD/Czc5UTvFH8yUPl4d3i+l5Ts8nOw/6/f84G+SvxIPDj31\nd3QsXcmRgHnS7rSPXIGfVj1x9O5QV01Y6j5pB/qTxtn0HLn9EkkH1jLLst/M\n+gv6\r\n=Bp7N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d8700ec1321b08ce378dea44307a61e54f98af31","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-d8700e-kwnlxgrk_1638368012483_0.297727075814735","host":"s3://npm-registry-packages"}},"2.2.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"891a558160017e673bb6b220dac7c5805fac2799","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.4.tgz","fileCount":960,"integrity":"sha512-gIbicn1Y4cIxYKFsuhRzQBKcsXsWdpI4xFRdDx0Zf3lP3xZjuc/SMOZDxfR37jIGFFrMCclFHbQaWTi7r/t4mw==","signatures":[{"sig":"MEUCIQDf9zt5Vw/wRny+yBkdcWhUNft8xChx3h8qf6wUPh7MPAIgaWtxsMpz4k3OmR38cpg6SPftQSszy9zMtk7GmXNbx6U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp4RfCRA9TVsSAnZWagAAlzYP/jsN8RUv9uoZ2hy5cvpt\nRKt78ChBZItJEDupetvNq8xySTBc7dI/CCzid2RxJ8QXbf0oqXoVHaxKWkRv\nLXSSrYbeBwTPqB6ykScbFA9uUnw2Xot+HINwgamOVAgZpjVVnr4EdGmnyxn+\nG6+O5uAtuxED94WveX666mXU6A9t89EBNDSb6n2ML7xnGmJomZWuT6jrKpOn\nOJ+Z/LMDmoBhA8SfpQs/z0/oT2pm3Nyzrp8zsjOc5kDn7ledn0xwdabSAFmL\n/+v6WatlAhsp22p71RsoZO7LyGFh5UGUsOcexu2ZyYYXifca5V/VsE/AEJ/n\n0KZ++pJLSs66mv/a6H9Ibsgp2DU2QxSlmlDia+Xvd+09kjValuFaCoDwMqeA\nXFbU1n8R8H3nIg9J3CRYZuGXldOKXKvhAS+znRB5CGd3LoxXlHmjYm/J4G1K\nRWtDkMWKFdtyqatPUj9UeWKf9Qhqhq5QrBtg3GPwgxTz3elXA+uwfam636Rj\nQRv1FmltnaZVvzDOFBJXC9iU/qLL8EHcaNpVHncBV+f1EDEfCGTKPz+qQA6S\nRG16dZthszWCtg7C1DJTG/qi3pUyGBtv1u7GcFKjTmuHrbiNumAAdOCCN9ef\ntPs9YDl8TwMjykdWbsI2uWP3gah9D/m/JiCGkO9m6toIeNCxG57FcSOSz3To\noykZ\r\n=+MM5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"87c476ca795b8705658e8169c8a2fd31b1f93759","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.4_1638368350821_0.9739047773919687","host":"s3://npm-registry-packages"}},"2.2.0-feature-aff7e5-kwnm9zai":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-aff7e5-kwnm9zai","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-aff7e5-kwnm9zai","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"977f0326d7b08b56e3fac58f10ec6d31b3525beb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-aff7e5-kwnm9zai.tgz","fileCount":960,"integrity":"sha512-Rci0x+pMiDyjAX9XLc8a1Gqlnrohpw/W0u025WHGIWLJf+D2hB6JnCthIXka4mUB4/LfjzHvPd96Q0tx1ArB2A==","signatures":[{"sig":"MEUCIQCS+j9xJn0Ef9DDaBRGUy4t2NkLKZQdxWKuUG1D9v2usQIgREbgm2nXkhkdcvVsuzH4bNoY7zZse1XurGJpFN0O7+A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp4UxCRA9TVsSAnZWagAATS0P/0GYqi9MjJHnCIUpAanP\nWGsX6voZ8e3MAipwvJhjhdhleWNiz5v4PVlLJHwk5MM4RmdNY3qB7x56DsTl\nPKVpD7N7MvbyV4/Pf5FxfAHlTBHEtHlne82wbjmkKxbWNqzSkfHTbHfx9rp3\n40cQalOgwfIzO2uejqCEvkrRFJggfYhm+s08ZZ1m/GD+QkK4bsGtuaSxHOKu\nvlWqUkm0ZXfJ41fDLXFhnvWV++7IAS87mZk3Pqc99v+bzV5ur/xcBboZds2X\nzVn2qxFgpM3CoV+EX6SfYZcGvwrODNU4CUU7HzfZhzqHqKIDaB5onYjRJ8ta\n8CCLneHwxMqyZd0VfravS+FYeycJVglv1dML5yUjnfXat9yd1src0HFjE4Mh\n/LU6MbmmhfKYKq6c7L+Ks+7E+UQchmXowmakwCST4ttwtoxy/uGX1c4c+HdG\n2U3O7cuHazzw9wyNVjPmmn+n9ooB3EYKJmz4Lu/2KvjeLZVaIm57nLOm5PmX\nisGF+S0Y8Crnl4KegW7eJyTxAyhkcT4oQ6WfMPcqQwwEm68nN2cA2bdQmOLm\nbpQId7qzs3cwMEdv1oipjY4GpDyRCHr7gEh0LDTPRuDFzXI0mxAUGxQhmVXK\n9QXgG9hTVfmtNR9NC+ouMGrb96tlZqm6BfwjZG1aTcejEbWIjbSwbQC6NC6S\ncesw\r\n=OgP8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"aff7e53026aaad9b393e8991ffcfafd19311b8af","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-aff7e5-kwnm9zai_1638368561811_0.16328163591227685","host":"s3://npm-registry-packages"}},"2.2.0-feature-163e13-kwnmqla9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-163e13-kwnmqla9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-163e13-kwnmqla9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b99671b2330ddf2e4db05bdafa1cfa97084b9330","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-163e13-kwnmqla9.tgz","fileCount":960,"integrity":"sha512-ezXAgX/SBE4GXUtjSxi+D7TXmlDKl9jlws0yIuZu67U2uqnSm++EpZHwVuUZE/zJmi6L8zCl/yIRIBOZapk+TA==","signatures":[{"sig":"MEQCIFnzEBI6d3nC8tz0YI8rUd+7NkOKkULQjh8xUa9GjR5HAiBqJQnRCo4Hl+OuLqihfioZps24xRgodwClPxhsm6rORw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp4hQCRA9TVsSAnZWagAAJvsP/2DXvMMAJeSMTyUUgPe0\nu2zAM4hIFTqZxL/vJvSOdmcJahe42MCfsPdUX+bFlHd9H9muBcDHkLxbhnIQ\nxmXUK0XcPYZyprW5bZqraKZRMHzzYeMfcZP65xsIowit37j6sxem3bfNg09/\nX8NFA80JfH4kBqVuBtDxt9skWzbonDH03JtSDRkYQgUpIGqYeR5a+ArN6IPL\n7XntOwHXrKp7xAkL5eIsIpsQijRF6HFCFD51GOJRF57RSduGsL/4VInDDztB\nzAofIm3aLkOcmXF1w9mQQ7J5kF4E3bwxJkGuqk1xGUKGMgGfiwmCljvTAkIv\nWnf9K+WnH5swoWZPZF7y/EZwUJVGaLZnRBxS5iQBHnwtr51JA3Wxu5Ug0Jye\nBu8mzjsZPrZzjO/VBtVashbU/ILc8SbZ/xkKREo/UMCcGGmGKyKydBbG1nTP\n1t5tC1T6ov1bQ3ttT7oXx1ZkwIUphw07OGE/9Z50yU/yRBj6BKjuOeT5cbBs\nDmyQMRkDHbt/iXl9GJhBA+VrbvOhQJiylGu1G/NNjcG0nWb3l9XLh+V/tZ6N\n4Hx+U/RKCYqqHRtieJ0Yk5MFRXa6u5LA/Zaobp+mxC4QIbCflBCYJk2VBTqL\nrBoKVG2Cn+Y/tgD9XywmXVgE1gn9CJXBhCm3lYBSqCWfu1MTcgIWUWbhtiZV\n/01v\r\n=luMG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"163e132450238887231bbd430dad9d7450a1fbb4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-163e13-kwnmqla9_1638369360106_0.3400404582427885","host":"s3://npm-registry-packages"}},"2.2.0-feature-ebe108-kwovip68":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-ebe108-kwovip68","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-ebe108-kwovip68","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6f9783562cfed8071af2416cea80444d05cb82c3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-ebe108-kwovip68.tgz","fileCount":960,"integrity":"sha512-Se17B4g83NET19F64Ve2mD96TSxju4Eb58WfpCJ50e8Ixk2HUKcV6EpSk9r1FgeptS7ZcltWhoOHeCk9G4KjKw==","signatures":[{"sig":"MEQCIB7vQnGoz8OhSEbujbmJulNZw6bmOY2nt9+3TypJTufQAiBIO2nPpHxjeu++SSA83AJtbuUJyYq5UnTPlm6AsOhiBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhqK4sCRA9TVsSAnZWagAAmPAP/joJx155oUh4KdaQTA2e\ntotMqKGh6jNizsfpnu+updIBVg8HP6OIyJnVR/pxTr7+qkL7SB5wZDUXvIy6\nlhwapk9ncvz0YlbTf1jZP5//IlOCIDSBRetE3/4GqZ1bjiHDZ1ghzKpqztPk\n9AHS2B9Exz3Ck2IsZOBSkxDcUBdjHSMIpgjQy195PkAx/Uk6LPb3zUIFrJSo\nBQthEjIfqI7vZbXCiu/MxLJl4rb2v8Y0vKyryUx8KHeLeI1KMbTYE/cgSw9o\nSL9XYrHOZbggC780EsPuAf1kZVc+ZgiMfD13Qc/2pHtO81LxzBUXffc7rrUF\no0B0jNhwrNZeOCvu3ZRgLwrCVGwjU5nkbscDmcx2Gf+9+Mhr9lzDiCKN0z/x\n+Xnh56uW/r8xe/tW/r0/22wsWtRz/mIjVBG2FRa4GHGINN/IjeLJfpUZkt4d\nT37Am0M4aWhtViGjeZJIiWDZf5W+KbB+krkAJM+azWvKW05e7iU5Whfhmiew\nuuAZe9qZyb/dqPMH1eZg5hTTpcIbX8H8Unb5p+1aWFLRJKuXWyzSk7w4IX72\nApl8I1x31pN1lWr5SLv9aWS0LckK911cw620n8O4XcdoA6NzcEKBk8ZrGc5P\nciQK1xvAlS7ZaCtWLFAV2v7sfDf7v8xsxfPf6JQhmfRyobCAHcfq0G+Zkwdu\nmOvr\r\n=6r2O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ebe108f30afbf7f6a78d877cb0789d223f0f8aa3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-ebe108-kwovip68_1638444588429_0.9065541686947189","host":"s3://npm-registry-packages"}},"2.2.0-feature-bde75a-kwq7gp7g":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-bde75a-kwq7gp7g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-bde75a-kwq7gp7g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b3e00189f255c05f4dbb337e0bd5c74f5a7b2ddf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-bde75a-kwq7gp7g.tgz","fileCount":960,"integrity":"sha512-Kxh8vO5yTmVcypIiOCfy+ft2GJmfVp4VUZcXx7M89qTCY8k7TogSgtVTs4egGD7pLc/Nr8wwtR+eWWD0RXak6Q==","signatures":[{"sig":"MEUCIQD362ar2b0inR1d2NooqnDpvnvMrBbq9S+V33palT9dhwIgKhWuNUv/9/tvJkoCPMWHRQeDEgIYl8ezfvtsG3aRlzQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1633459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhqeiNCRA9TVsSAnZWagAAGIwP/3sziAF6mRuaK0udYreG\nWKixzEqTwmgOnT6XM52IUD8JCPXV4Es4d26wPDCBlZSvyJTV1Ri0X6WyKWly\nE+f3W7M/Dtv0PQVTkGK9tKAvLx0fhPCVRi8R8o+a7b9DwbkdJm/Fh8NDnLHn\ntYpjXnELwmf80iUvvNmnk49OnBkc3MBldAzoF2KpM1RR2OoSkHISw774hZJi\n1JhjVrEkANYsd4805aNq6NAcaJX9z457alQIEPQMuKf9st+T7GW+kfNW8cVY\n++l4E0pbMbVOR6+62N28RudiUseleyPssFmrIddw4FT52X61+TZ28cx5FA/R\nE/ZD41C4hKd/dh5bWaIe3j13U+t2FCCBrs+H2e/w9Sp9vjDkIwh8+jTVg/Mb\nzccsqLZaSdOoLSFC9Zzg+9+Tm1alDRr2sX2XEkvzmkAvwUAFuInIWWC8FDpS\n/S15NZfIzoFbrqCgvT+7MjDaKAhj5vvQuKNaPHwBV60LP/5XkGkD658FMWy7\njIZRH1ekRRo4TDikMkh2Q+7U7737nn83k4UYqAZLvj4qHl5svsrw5Xvrjlpy\npoyqybQkhuDASNbA8OwNc3VQtUIIvJqcX7ei9vRc55pp8I//1MhqJsKC1E/s\n1Y1Y8cLBYs7WNrUSajyhpf7+DM1WMmZpuq+JZdl1Wevu1/nHvsuDWbUhzSBF\nUpwJ\r\n=Ux5I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bde75a31b00bb5734e882a05ef55a91ab996fcfb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"6.14.15","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"14.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.0.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-bde75a-kwq7gp7g_1638525069724_0.42218641528517353","host":"s3://npm-registry-packages"}},"2.2.0-feature-053022-kwucg5h3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-053022-kwucg5h3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-053022-kwucg5h3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2607995be00f4d7fc5db2bc7a260a72528d745a9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-053022-kwucg5h3.tgz","fileCount":960,"integrity":"sha512-en+hOaNZKGKi2qyVKiKkrBSQCuvzuYL6YbS1H6lgvvl8WVc0WGbxiVN6yXYf/iBCj+fSSAWRQDIKOpSzoD7uLQ==","signatures":[{"sig":"MEUCIA2WBm2V/WvKGc3oHTZ4IJAocnt5ZMJ/HEFAgW0q2S8aAiEAghrkQGWvL2/SCxy/JQQw3dGgx9vJbC+EfYMnStF2mEo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrboUCRA9TVsSAnZWagAA53UP/AtMc6E191DenXhJGfIe\nkY1OxM7X7ah73r7dQ+Zyt32vaaFIaeNtOLORBuJ61ix//DX3HSzeInTgfVpS\nXjxpscnlUf8UAfY+f5oxqp6k+PE4+GpDADFaAIr1F8ZRb0dgxo8dQY02zc47\nEgfK0stE17pnfgnMP90Gv+sAPJ7goE0r1kQjkMOGZFOEgM5hJHjj/tmoxR+n\n4jDC0CCwgu0YbM9xwr2D/8eiQGXks9GFspRcorEHDQvn8bfqFGmYmrNBG2Fg\npfmIEyIk0hpDzNp9F/r/kVNg16SK67jZ7YFCGB9Z4Zy+z8aSVuEPekOfM//L\nKwBCJLIKjIBWLo53XFthT78AUgUf271OIZZaLqpCxnnIS4LPFB3BeinKUQvq\nz+zKFDGbPnYU/yNkGt5G/ay6PPbJyWoHDdmeAD3X1XvfOfZE7MbcR/Y78pli\nGWvgj7M/hg4zpZVw+cC744HMDUNd72GOcapmwly7li/uItlHSviO78DJIDP7\nS0MkaRWhJEt+hfNLK2EIrsSzMwT4Z25hiQG3kd7C/VlzzhQI3yRDaE2b7NCp\nX31B2ybh+7Opli7Jn7k21fTn8Ml67/vEtUitclMIQZyM+KpxdORldduJOPOZ\nxjTGKzM2S0dD9b+n/4E5UOOvZqp6mYOMGNe1D4FMCwi22FdHbXhdYHy1wpCz\n0qzz\r\n=q5Pl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0530224fd66494afc9e51368a7fbc79b982bec60","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-053022-kwucg5h3_1638775315863_0.22329800613451","host":"s3://npm-registry-packages"}},"2.2.0-feature-602b94-kwuj6uqn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-602b94-kwuj6uqn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-602b94-kwuj6uqn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ac6f5557071f0929a3a80a60f36e4d2cdae5af1b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-602b94-kwuj6uqn.tgz","fileCount":960,"integrity":"sha512-QLw3vxN/rXAN5bsF1DwZjg0K7OWWXO/pXaKbFanNTiERY2Ud1bY/5LAq+Uvjp5z2opZNLmqDnEgc+QDnCt/1hQ==","signatures":[{"sig":"MEYCIQCRhCudpbcHGvtKZmP0cFpDhF12iUys0/juDQy4TpceywIhALPXHBKU9VuTcKnA9p7eQIFbM2K3vdgbV5jJhrrBs/ly","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhreZbCRA9TVsSAnZWagAAxL8P/2Y+IWJKjNNliry8uQbg\niaZIzq9nYXiumFfJYA1OPqCZIn9ww+PIUxaba89OceA09IoV6qZbtVy7Uguw\nfvX3cpcKm58QhCIq8us/KmbaUkdFbeEjTGTz8os7l62QQHnjUTdDq1kAenmi\n1qa1zoy3w+K5Yt+zbU7xjaW7UdafAmRGRg17QLGVR6AIhaKzw5K4TaTiCcAA\ntv+H5mT+qhhO3AE+65qVQX17137xAfhCwOQJaAN/0lXwRDgzxQMqZV3ZHZ9c\n9pF61DNkrH524gteHApm0kcBfL71kvrF77tCviUE6vwyeHLK8tWG3QuYY4G7\n6ZczEgrHIZXrPau3Tby5lNMR496+NIUNIkNiX6V1cRLZwvkz2Vao+cDnrgxj\n3CdCxw/wXpIk1tNDMHrvqhVzBeXmGc6hD0A+Wy2e7si/64inxxxIWxiFT2jl\ng4uaeEwZsc40Jvi1EhcR1Nsu/KBESTx++TfZWkR2yJlamLtKgIdQMic9gjUD\nR5ZbCkEA10Shy0ydhM8YYcN/u1aLErw/56d3eECwg/Xx9MLUCIyyUoutefoT\nmEgsIM37qKM7Qq0LZR6gEYhzU4OuAzdXIdC++0BJP2C5ZAz1GgQjWq4QksXQ\ncRK7oQpxeefWkbpyn7wVZcaYCqomtLJk0XJHzgXSCwZUeCSjA4seiYp9I3YK\n1/6b\r\n=1hBq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"602b94d0ed30f7a71ee8eb9bd43c7c9cf39a097c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-602b94-kwuj6uqn_1638786651071_0.24729274870528717","host":"s3://npm-registry-packages"}},"2.2.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ea508de62778befcf0b2b646fd739fe4fc9214b6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.8.tgz","fileCount":960,"integrity":"sha512-SQuGQwUWbXATLlEkiqfyDO6LSWypxOxK0Ha2ic7g3TF5St/6zlJ8d/U6nyanl/5jcPWC8ObzVi9qhOKAszhiUg==","signatures":[{"sig":"MEUCIQCrLjrtLviZJiyQU4AedzmD5QxvIC/kWWydzFzp33vCoQIgD2YAqbWpNl0LS1wzeu0R+0liGK7zfrusHLDgJ9+g6us=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrf4UCRA9TVsSAnZWagAAViEQAKGfUTjDcwmS02PH0tzL\nEcvDb8rUOsZvBjTA2hLATTHfwffqk3ITpzZ+uP/lAa8XvUvPkWdCJtk7sMAR\nVuFpqHAVz/m0Ets60DdQw2qLHv71nprbWR6OKxFRB5DvKzbkGBc+rubxFHE1\n3gFBo3hs7L8xqWAIDGMPTzd80UHyJ0TOED9TJazhyZMHC16Ohw9BN3OjzH1H\nlWADFbG8oJhND+ZF6+WGrVMntvD6hb7cR7PqyAvGzxQIyy2GyQmYFTov0qLA\nBrsUvedS1bIom80F4aZrGPokAAAZKbu2q6CzGvYY5cpNMjVJk2eyux4Z9EqO\nsYh3BzNP1wjTrD10tTOzVMVlibTQDv9jRekvPg2D0OvYwGB2AO6fn4afKutX\nbB6YsL79eXE64iopWBgjrQwDDqi1Kc9zA+G2mq3wLMPDq3CTHr+aKPu7PfWP\n8YNnSo7YUAXOkZ14m4g89ceU212Xust75IWg3U0XwGaCYYISNOly3nZDz9+b\n3dOKyqphruf+6BnT8w244fFs7X+he+pS3bXNzaSXGU/xaFWFuK1qm1AzN85p\nnOtLyTUYHzPzS0WQXvLyeaT6bg6xVuAlbdttUz7aDs7V+qi4/z9ZdXqbZKOt\n77MjMqc+GrKyTYS9ZsimSn0EEhnUJwU6yrz8OJ3npVA36qpUVrypniABo07S\nXip+\r\n=5g4G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c14941ac043388c32785da6417943ac25bfeeab8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.8_1638792724093_0.19949476094980745","host":"s3://npm-registry-packages"}},"2.2.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b93ee8105a56adda1b7b6829c75c6dcebfbcdeaf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.9.tgz","fileCount":960,"integrity":"sha512-+gpBBNMVy2uTrRm8tJA7GzIK72PYYWM2gXd6jrbGblftw+C+2GugOe9YGuee2P+ALpes03ncj9zUPBjUngbTig==","signatures":[{"sig":"MEYCIQDtGFQ00O0erjFVYMquRGeGy/MBrvcpbxAQUB6jJbRmEwIhAPR27b9BERp/MHXFJiDht4Z9Ve68xooNSFHsQtdecSpr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1634999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrf7PCRA9TVsSAnZWagAAtuoP/jQW5ZiiNwC4fYi8pmI6\nvjCUZTBRgfmSYFfcG8XE98ZrudkpYo/tt2EXHWSuY83iwINAkBQWwgqGwWpj\n8whpMob5bd5+OcVfz2nWQxlI3DXY9Q5ZhBpYaTXaU/PLu0Cmd6536LqC/n1A\npEYBHcfgNZOz6wREhuDgQtqYwcSU6N7hBLs5wVEArngWn3j5umKg8IPrqes0\nGepsW9kCjc8g32zs13wP1/PWoWiqGciwGuAJ53Ps96z1PMbJPyUDXpSWMTh5\nck/B9pOj50IkxsvD4KhBJau9dKczwypKDKHzSHKM41xLDFMeEzi6xsw1BzGe\nFP6uV1Tk+SVwPnmdKcYJaAVRVsIxD4PGMmSgOLh3DVXEvq2QgbEDHJhdilD/\niTj2ZndH0LA12KsMAoFqSbCHvWdT+xwcUjCiO5gBsfnYcbQCVL4g7uPFme11\nWZ+POkDLmGyEqIUa+/byMf54IU4N/lpsDBd6YnifSg4PmwFv+5crz8+7qiza\noQOB9OuftbabbMxsRqdSzN7Tf2mzfI6LgHp67XDnZd4FJu7br9mpVuV8ZR5i\nGtOoWaA7It64Oxs1LADxc4WqrNmCREQNdA3cj5HjSGxADTFDcpFmCjd2domb\n8kgFuCXL9YFltLS4dz/t5m7wJOL95aSH8UmB34X2TxkspT9LBPd5J6TOO4+c\nBtCz\r\n=5eWN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"728c6dc070370825b6e9b0ca1e3c154858555f6f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.9_1638792911682_0.5520396270445325","host":"s3://npm-registry-packages"}},"2.2.0-feature-8a089c-kwun1qhs":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-8a089c-kwun1qhs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-8a089c-kwun1qhs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"af31bc04963066f5f08fb843a3efe55fa6ec1ef2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-8a089c-kwun1qhs.tgz","fileCount":960,"integrity":"sha512-a/j30++70vwT2joU9/ZMk+iBNeE1p72C47VAn0fwAMbhDC1q/BhpgnY6r40WsuRYlKt7NKGneYhz6BxZZYBs8Q==","signatures":[{"sig":"MEYCIQCByt4wc2MZAECBZjMcB9WrX0xJDFXXpQwu8MNHR9ReIAIhAIvdGZY6aWw2HCnxUl2QkRdgn95VpWsM5CU33lbzg3ZW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrf+zCRA9TVsSAnZWagAA1yIQAIUuoHrp4ATHmrZc+9Oz\nKZQD5diGGYjGI0dTUXtdAFWfXCne2tnRPPKh0gqlD3vd4IkjBABZD0++Nckg\n/Tkw9ogXPnjt4xrLZzuQr+flWI/i+7s2mktzXl+0ZU0AYX2TAhYiKoiP7n4W\nr5xQhOF9W0fqOfC+OaWEkSvtwWrAmNikDF2Ee8/U1Se8gQRsGe0GOtuZ8svU\ntRIxZI+f48oDV2kxVgDrA2Oxz6WJ7uhqaruZ1lD+0IlffAYsKCSKyqtiTINq\nIOyxEP8HEAwKbxZ0KpjFal42PdTKzc/GmHCJp+RjC+NxEA8YlDk13Fw5lAUG\noAa9jATmFVsxuMxO/iapUa7zbGl4QB498IBfyddf+91AOA2heL3/rk1/8e8V\nEKkpcva/0dlJWfLST1Z8amuu7u/YZuOyJKUcBk/EHLNCQsuXY3TA6ema4GUG\nbE4C0dHYStNzfRICg6t2Flm+dxhBBeNLKR6Mp7b5qthIxLAPe9T1B+3NA5kz\n/gYYOUTqxojj9e1r5PzqyAnJ7P/n831VKJuJote8E5c4uSy6v02h0YG/Pmdv\nPCA9j0ykbLb0Gqd/NyIAcXfx/xenKU3P8AuG49n9d1m9C/smwcboO1lGF7WO\nwnzic+UieJhLVPWhYPvHpYbYR0jh5uyiMADrLmXZuJ1WLs3Pk5nIpZHEwD3I\nMAsR\r\n=yr++\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8a089c8b8f6864cdcbc45f611bc21d6d1363ea98","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-8a089c-kwun1qhs_1638793139047_0.4917309496129594","host":"s3://npm-registry-packages"}},"2.2.0-feature-893842-kwun23ig":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-893842-kwun23ig","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-893842-kwun23ig","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ff7f128be053cbea542e019ec068126fd3588e6e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-893842-kwun23ig.tgz","fileCount":960,"integrity":"sha512-Yl8Em99AdRRopaRGCvPSrzAfC8LCXI3vxDrBGXckHgLOQ/dIlmy8sqtpB1YinYJyk/xOF4wkCfLbmpwp1lKG3g==","signatures":[{"sig":"MEQCIHJYeemltXiSOnEZvje3O8wgCq2aZ5SPQROrKvUyuu/sAiBKL4wzPBmpw7Ks1Q+vNYo56Ovo4vm5bjgnqT5DTilm+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrf/ICRA9TVsSAnZWagAACawP/16CcffUoZ3TZlxTpns5\n2+8pEsROfcraIW1n3mY89w02hAULPmEP9vx3PeFhK719guEKnRr3KK1JUiTg\nx8+CeQDOCc9J3JEXyvjEwkfe2Ujhd3xjz+OuKqLMi9KQpZM/uzoW1k/NE0QM\nyTOpHaTS1whOs+FTm1m3y/vzqJ1R286jv/9yqv8tvbUqadJzJMNmLQ5Ycz9+\n4BgqsJBQNjmbhIelLU9ZTW3K/NzFFTzA05A7tWX7tI540JGnOHJKH2WsBc0n\nZOTKduT70nw2mdFzJxRE+cC5L6LSA4PiK6P4eVV56MsHcs8kgto0nDZcDkaq\n2fnTRygvv/WGFQXtoaY/181850G7Ma6mniyMPHIZeneFblrVdyjJX0JfuXzr\ne10QML/7rpCDqkAj6bjzlds0xCX4eKjHbRTTrnFfnpU6lOKoKjq5OFu5pblZ\nPKExtyuWTvsd2gHSMQBayMq5r27JZuVK21UeKV9/Pp5Iw5Tu9uXOyYW8EZmi\nCCg63LohNn01amY5YCESt8OC/fZkGZR39mJpjulQHWUsPy9UxKQOe+dtTYeL\nBcJTK9ORmjYl+OZsYccmQWfbz6cEL/V6OIESdHy+UFShMha7RRM7nV1Jbwi2\n+SBcBQ72+KziLO8liHfMKqaE4TLiaM2x631sZtpoChacTUiw+hxRTCXUlZvU\nuJ0U\r\n=Ypwl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"893842748b69b35f6addc4050dc8f2dab05229a6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-893842-kwun23ig_1638793160337_0.3497546183757889","host":"s3://npm-registry-packages"}},"2.2.0-alpha.10":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-alpha.10","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-alpha.10","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"60cdf2e8aef0236022bce4a0a9eea1a339355fea","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-alpha.10.tgz","fileCount":960,"integrity":"sha512-jA0zltxU1+TkSonqeJP6u1g2BenzVQDcbV4YvxqIn/rjxbdlMYIKKlU5gt0JTl2SRBetaSDBHWb4HXlPcdZCtA==","signatures":[{"sig":"MEUCIGjMdcOIIYH2JM1ZfZIeEmRj3eciv4d6eXY34Ye+oT2PAiEA+yTNTChmc+J0d3Q/esC0FYIY+HpaM+Qasei091/J8OI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhriaBCRA9TVsSAnZWagAAgC8P/0VrVh3b/rB/jIO5Ut0E\nJgdyMEsx5X1o14Cpg/Y4+NSWl1hxR2NQhl5jh/2ox8v+mTOBoRVgpKShKpOI\ndrPfSpHtOoYuTh2X9/6w9zp9zI5cZiKDXFL0qFOLgEayN1jAsYLWmigQOUBb\nFrx5SjuueV0XiGEeZxkK/HrlC7PfR+n9uPgkE5/QtnoIxEKzsA//ounMChEF\nzw89Gvx7nv6qEhjQfYGkSMBsjG+556J1jWY6NYao7a9ftUJC/VU9BygoCaHx\nseVpIe1KrrmD2rgNeN38+Ud+1SWJgQ5raEO/cJjvhOk4JA/HT3x1IybiS+w+\n+lOcKFKAx6O+OxGP3XzAf7cILbUHIysHeh92pdLkOny7vErnCdu6Y03WS/sN\ncc7leZdedOS+R60kjUbfJ+1juRPZDyAa+qQd8VWuCvxD/obkmqg2EzCJ045C\niQiA0n2IbUj8Jln1uqr7MYAkKMEI/BVLZ8XZVNS65BIHTYZhXIPsEq/hupq4\nks6Q4fSFL0d33swPNt98yJ4kE2ub1U/PeoAbhDtCWRnwe0eKR5SafvkGAUlm\nN6Eqm2D6PYuSxae4gJUKhE9DWczslnHrVHT542WxS6/mcYh2mT1HZodx8es0\n9ktfqPqiWyY/jeigHQenBAaRYsII+OjEtwU81YaDOa7N5WKDa3DhY7nXw12d\njBw7\r\n=Ccmg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f3e0b2828d817fe77bacd7084c86e59d35a1d471","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-alpha.10_1638803073563_0.8890633281359326","host":"s3://npm-registry-packages"}},"2.2.0-feature-875eb6-kwvsacos":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-875eb6-kwvsacos","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-875eb6-kwvsacos","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4cbdbb2cacfcb25eb7b2efe73617ed573b3a9932","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-875eb6-kwvsacos.tgz","fileCount":960,"integrity":"sha512-iKgEIzBbSY+E0jnqjjCOKnrJYYK7jQ0MRXKuLYNm0friohJurYgbC6QiOgNTiNMg84jHa9e6TlnEezXGU2NZ6w==","signatures":[{"sig":"MEYCIQCKjicJMPv4clq/ffoZa7DCY2UZDEMmhkwdjkbBKFXw9AIhAPzIFpCKP4pKv/2By2R4+sZ9tY2JYVMZYqIwYNOafe4g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrw5MCRA9TVsSAnZWagAA+NsP/3H3rkvka6lNCxSXjnWj\nYF5RlLchA3blIPGUsWL74FNgUnqjzi6fo3JDhvxcEfhi9DWV5jE4lsuh6TCo\nHHlWkerbQhF/1C4ZxYI6iHFVmmxVC7vGpIFbeusHbEPdjhAGO7xsC1RuDVAV\nU8yiZFYPwzMYOu1YgUbnbGwJhuu5amrFSTumkAZuzRmD30U3yurluZHztFpx\nMGtbS7LaCEgK1lMkC2rw6XvieenvFIBYT4rSA5MVFLnazJi9/TaJKHPNnm9h\n3KLkK0kjA15hbIx2Xgn3egi8HIdetExzqCw7BC3mbwxecDhtTdYNYxNZCm0W\nz4y0icdt8ghg3qj0+wmqJJSPp+YtU/o7P4pw5HeKwhvGilCuKjb4SylxL8ps\nMcBPYC/SZSsIGdRPayRrHSI5BEjAueO6E2mMIQRNH1XM/GAhLabvcaVmIBde\nhJoRRAEpHht+MhgtmMZMZ7oXaR4tnhpv6EoLJlMdoxhs2/8BAG7yEVRvn6Ay\nFefxoa4uR7HozBBD71Gs5PjMX9J5ap8EVo5ZS6neFs1xeG8ZXMKQLs6Y2FQ8\nq7ZK5ovLkkE/n3tz4+cTqWDltw+g/IrMTUEfX4bJVicbmnpGKsk2kJZS7uAk\nrpNjIL7SFvJkjvAunbaM/c8IFUEr2FOe712tgQGqSwC2Z/X2QHTv2JVUyGc2\nzlOE\r\n=gLGV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"875eb6fb996bcbbc6854b33ff12953541bff9f1c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-875eb6-kwvsacos_1638862411873_0.6317409927513069","host":"s3://npm-registry-packages"}},"2.2.0-feature-5900d2-kwvwdb5w":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-5900d2-kwvwdb5w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-5900d2-kwvwdb5w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6b8ec36110450bc67970d7e124d666e80631276e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-5900d2-kwvwdb5w.tgz","fileCount":960,"integrity":"sha512-0ZvIn5TiXo/W6s3gwusk/hHk2fJ6Kc/XBzwRJoLxu7eEzklXoqF8GS357IDqnvzXhrU/p0cIWwayZoxUifcrvQ==","signatures":[{"sig":"MEQCIB5lKTa7W0oe5+aLdxAp959bl3nGgRb7G2owmhiZc64wAiAOpQl74I582ouHdZ5PrPjUc2jrkt0sPGT0ArAK60O4rg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrykdCRA9TVsSAnZWagAAzxMQAJre10gZHyDQ1L8BldGM\nVXPIQ9r6AuNrhQVjsO0M2rzwTXA3igNZAxTXYGHmMbR2eLFkBti+SZHmN1j3\nEywPjifaAzK45BDwp11uz+zjDYyhOknFYoF0WchEIqT8SYE+HAlCF5aK4I3M\nnyQRUX1mIh0eFvLYZjGYTl0YfME47EmTue8MdFyHD9oG52JDH815oW/tQ6Ve\nSU0XleM5AE0TtpEbYtJwqlI0qFRQ8K0AqyabLxQl4bqGrUuDFXqD78tn+aN6\n4p3Q35h1UrGdQF4Xi9PntCGBPg+g45APdu3uC7UXpQllEjpbAGYpE+9KYyon\n2H6kQZqeX7BwTsz/iOXqod9n1blK+Q2tieob/4WQej6FTT4kRFmIEU2gGoFg\n5Jm3eyQaI498/A4rJFHzSnmDF+2il88AQzenPmm6GF0RA8TDGxJSN78YH5iC\naF31LI5hpJMA3KMR8P7PPaQAmBxUj6ec+KwysV3e6TNJ3XUeTi/4yvlJ4Ou5\nJyEgrlbL4xk2KxvVF3CO3Q6ijpnQkUwZ+eOSt+y5NfhuyOmSwgpa2xY0NT9/\n0w0LwMubnAmYW8FJcicBhY60xR/C/pnCh+6C+0dw/XK1fqAKYoRL0mPQQBb5\nynizzJjfXZ4fqLLikD35zGhaFGhCU9PXBkDoZLVTm+NBeQ4E6+SfnbB7j+Fz\nAnWL\r\n=1VJH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5900d2d23fd8b1a5753069e38d0349d65abfadfd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-5900d2-kwvwdb5w_1638869277344_0.33237513288389864","host":"s3://npm-registry-packages"}},"2.2.0-feature-28108b-kwvwvcij":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-28108b-kwvwvcij","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-28108b-kwvwvcij","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a89ba7a1a5c45dcf4625cfffc207b5289582190c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-28108b-kwvwvcij.tgz","fileCount":960,"integrity":"sha512-7FA1EQ4n1mODiHDQGQ16NzB9lx3L2TUj3WXmcGEep6/P6a8XflGo1i/xkpOufmjhtJZJV5C4vgysHXHHtqeuRQ==","signatures":[{"sig":"MEYCIQDvqmyErDZJQRkHC9Oo9RPb9WIQihn8krg+1vPtcp9NQwIhAMM+0dkSrtaOmXo0BOJfJStE9I3Fy1jzS1yaQyGl2kBe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhryxbCRA9TVsSAnZWagAAi/cP+weB6RJusPHDTP0zr7EI\n6dQgGeAC6QNisMF17/bRS5etVJ4y+WsBUZWngwhftCiCpR6aEQVPldGFySWO\ni+WpMgXe0GUF/QcZti8InJcuHb/XlS+51gkhGzJKpBUPDRaclBKliiqI7x08\n9v9YlW7Xre3MzhV4EHcIissFQ9Ox/f1byImt4jNnGnTJDguWsP1F2E5IhFjA\nK8oH6WU4sMW4auFo8ofJYxP9G0iMLmZZOmEDXeyXnfjsG2PPfVOoqECtgf6l\nUNnJ6rfpBWuWBqHZBWtZb+jGdVhxG5TGx1i6Iq+BYB1fyciv45K4rbaebrB0\nv4+uoHQiLbqWQWkuFDqRFjCGFsDDqQdTtAsPLyb98VxCr5ZI6w3CrbvnfEZw\n09EyTo9qcesCfh20g2gAy0QM9UJg+8r12ZCa5NvGk2Xvrumg3ci0NULqpuk7\n5lov7OtuCaaie7276Qn8O18SOR7Mr5GtflkrsKJrlPTjNtDMSRSjbedFLFWP\niO0N3gLeewnAb6tRMFUwclZj8fNk2L39RT1veIS8LAQkgUgGIooeLs2gCob/\nXc7iSDy9Z5YIbpQbnZk54M/4caYCvjbTsGaUp9usjj5OB9jKcJzA0HUy67BD\nKfRjP/yPif57c7EFvosY+UCPR6zYl+YwAAVEzCZwu5BIlzcmnUX3p4XJUYtI\n6EE3\r\n=pAlu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"28108bb591c7d48ddfb24b1930871043cf6bab55","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-28108b-kwvwvcij_1638870107470_0.7498073417475153","host":"s3://npm-registry-packages"}},"2.2.0-beta.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"84715f70eb9327dc649c3c298dee3ffe3d72a636","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.5.tgz","fileCount":960,"integrity":"sha512-ziJ82gHdj5jACh9n6uiW9TpCl2QZEI9NhCiZ6q0esbT/hMz6FbmtwGN0v01QSA1uwf4taXXcGdXAqMPlyiRXfg==","signatures":[{"sig":"MEUCIQDkIIHhAjXfV7K80+HJe9VuUxK4sgVMusTQhFpJCy7NFgIgHzi4nFPoJZJ9tG2PFEFc8VZLSjYyG7QCcid6M7/8Dws=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsJ/kCRA9TVsSAnZWagAAUaQP/3Xn6aI0C+LovAhGhw2T\nukK4sX3+fzkCTNDIHwn4KRUASns8rZmsAgHIPkZq5UsCb6yD33gbhan48diU\nnPQ9Xma0XdZX35KeKi86FDdTLDD21djgzlM/iioEyA4lhihFdxwETlcqtNgB\n1/TRLGFrgIkFFZAx7jZzWJLiOlQJeT4f3IxXr4AjobILNLBVltyDWoazqCu5\nCklR/RmhRsYzKib+Go7l5s+YCM2I9onHZoxpN12N9dRs8AZP8b800yIuOmLs\nyt0CNX8ylKidcJNSw8cU7WCX0LrNJ9hB/kSm9WKsgpdXkUiLqKMHWOe95rW7\nlssUJ5Or5GYzWYvGaEWwpE85BrxRyZaNjOOJ4Exkwt2n4epLCeBWUI6iRkiH\nLoNLuShfHlz+AWa9XVwIdRtAXrZm8DLE7UCQ5tb/XVZWeZPi6OHpclVTPgYI\n2qLNNFWZXccXh4JL8ht8Xbpm3Ndl1CTrVxRXmpDVN0os98ecxtI9eIbsbnGM\n87RJ3Qj+PhPq6KcLkulyeCtjkmErp4RPkn63iCpTGCPrG/KdWys0rDSiH5nj\n8A1QCZDp5VrykdvBnA936WWztDxNysqP4u4JoKVtwZu9iZfz6o9oC52sOj5A\nxyO0nhNmV/1Xk3TsULXQrg4fCrkDPq2Ij1cyVRuGSK/JVoh98GjawxLRS18n\nMj8w\r\n=uV4Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6c953eba6fdab453ae03b11db7524ccfd7d92022","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.5_1638965219873_0.33012545684772143","host":"s3://npm-registry-packages"}},"2.2.0-feature-dddd81-kwxhmns0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-dddd81-kwxhmns0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-dddd81-kwxhmns0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f2840d68704b5425afb5e57e781e7ea8f531b1f9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-dddd81-kwxhmns0.tgz","fileCount":960,"integrity":"sha512-NrFdPI0UfMTW6DuooQc5CWqaO7pZtjkYzZ6k7BbTLVo+Q87gdB6NBQxijzhA3+KTAlroG9qeGwIvq6oxT/17ZA==","signatures":[{"sig":"MEUCIHFBCZhNjlJotdl3Nvv5t34vL5n8izhDF9t1xp+BsJ4DAiEAm0RVPwM5xUoDvfhYHRA318iJXIEGENOxS0tiBrimfpE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsKCjCRA9TVsSAnZWagAAIDoP/1p448ActidE2uEjZPPE\niu1PbfdwEKMufGdG50q6YNiX5oqpY1COLiCrn8mnHB4OLxAlvaVodOM0x52i\nUzuOtpSoXxfLgGdc+TTu6GHC930SqHpXJv7WnjASsmNJkpOaRT6Ro3Ied550\njqAXKT3tr1tO1ZLu8cXZYMQ+202AdL956kgAnBw08dxbnSj7O1Y+27+mCYoW\nvJqQqtW5WnS8QItf+V/kRP/ZTwiouZLNAE2AvaGHckE+bUJNPWA3mhg2vpc5\nhGj1CKisw2nuoUVRW6j0L3fvk+LfxnVoxr/vjJNXSkfwge/zWT48Y0eg37HH\nlCiqroBsSH3HNOhzKhS1fvsGnYlwWLSo2Tkf1R4bRaGznINPpIpwP1oyrcSx\nIxQAvgPIjbBBabe4aGI1oBdadlxFL8UwF//tIGULZt3QnlZuZCq1/nmtHfW4\nEiwV9QD4f39k5Dgw6U4aRvvJ8ktSpW1QbLlA57Thf9InOihca/uxEFon2I2S\nvN9FeHfJrdxA5hY2e3MoakLCa1fT/9JMb5QApEUT67nb1d3tux6Gr7bwMIaN\nd9VCApIaa24Vq9zpMpTp+Nz59kWmSq3HXRK0zrx0cjJHdW7eOAXGHtwvJ8Dw\nI42W/fKpBnRbc6I4pgpdYZE/5cHufVp3h162V1SUEbEiCxjqznI39CjzXIv3\nYmLS\r\n=gGjk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dddd819ada99f10408212a561c65d996cff7b362","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-dddd81-kwxhmns0_1638965411071_0.12429571038292297","host":"s3://npm-registry-packages"}},"2.2.0-feature-0dfe72-kx4hhcqo":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-0dfe72-kx4hhcqo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-0dfe72-kx4hhcqo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"27612d9e4e050da5807c222dd10f5554a66853c6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-0dfe72-kx4hhcqo.tgz","fileCount":970,"integrity":"sha512-ZRdGR+Ws+4wRUmEd24cB28/FW4V6DBILi1V0g9+DFHOf54D9AD/J25rrOZ4o0P1Ok+nGlX+Cldquze725xhrGQ==","signatures":[{"sig":"MEYCIQCin4wwiiDsr+pyaKz/dVVS8BKt56+RvwJKQWK1oFCG1gIhAJPEQedpq9ZqDt7saSg5bzYbAPkSIkVJ9fvUgFzAtyaS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhtxUYCRA9TVsSAnZWagAAsAMQAICP2FEh+h2xuhNs1BG1\nHZkF4yCksEzzCA+/KbJsDkV6tfmmLVgmbOmuNZZCaLmsJFhz5gcOW2wiaC6x\nO4jQQVt+S/LTWuidw2MkFmkPMWitdI5eouABjoF/6o5t7w78VP43QACvtkAV\nGlBi4tqHOEKDXpw+aG5bJ5/ws7kMX6a1w/pV9mcGc9Q6DmhWT6Q3ZJxjXD4M\nopSylzf8tkgkQo5Mg0+FgCttKxR/SaSur4A70mVbNx+k2xX03eQK6C/s6ZrD\nhEQZ/NB6ZAccmlf8AONIQljr0jQA5VqTGY6Q0ujxC8R+nqBaBJ2s4ogs4XOd\ndf/TMGTuZuTwTRosxi3G24Yc4vSR03gmzdGBhuJdz7C8aNsbgQK5Co/4BtTf\nypGmtyiMA/FD2DkayUkHJmn+eBd7gEcghjsMIp7Sz0Fcu89WX5mKYVl4ZMJa\n8xilV6Y97jPmHwSuMLIStzm1x92a8Y4B183Al93OVCePseIZaWWSOxp5sLZU\nHQ97hSXnbVSZP42I04uyuLJ/aHMJK+bhKZ0T3e1fUKax4aqtQ9tGIETYJy8D\nMMsXsGfgdRSOrfzrjhoAqD3o12DiYr9Q1EVq64I9/0OKN1OTq78FtJbL3+8I\nnWB1hYC+J+KqOPqf2pz+nK47o7SXLIPgGMeaH5VDosgbERSvq8FFRlwzv4KX\nT/ZB\r\n=Cj26\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0dfe728efb7feb93deabbd321755fe20e9ce2f79","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-0dfe72-kx4hhcqo_1639388440039_0.16279742851641932","host":"s3://npm-registry-packages"}},"2.2.0-feature-bc0d3c-kx4rcdfn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-bc0d3c-kx4rcdfn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-bc0d3c-kx4rcdfn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a25c6e767b01426c3b20901d77364439a408011d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-bc0d3c-kx4rcdfn.tgz","fileCount":970,"integrity":"sha512-kPti/XUK/ZvYGW7OIRpPtLWtZWRk0XqslpYzueQdXE3S9XUn9rP4DiJ6HRt4Mm5ncPQyk9X+o0hcQqLewooy7A==","signatures":[{"sig":"MEUCIQDHUTNVp9Ewaq9tcSKn6aoUakJIm3p57foCTvfiW21olwIgfv5QKsOeyBagbJej2JLPIycQ1CDqfR+3MoAkbt3FDAo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJht1XVCRA9TVsSAnZWagAAX/8P/jcI3Ki0/vUnvochW/cE\nxbx1xgiAGrNF44dXoVGqRaZDpzDicfhLZX8dP4YDclpDZCk8l8RHkjuu0kkx\ns7X9KWm1v7IWt/s3C+6totzor/Tt0ZYAf/4UpEOpO9h2DtsqJm0+/OtTwsd9\nctqahnN7HhGePMBisne08dZFdlJ9b3IXJbBzc/7LKRiwyGZehvYP24onwrD7\nO04YjnIj4Kb/7f1l6dTV6jkfNzSGLbIuA7gpW9Kg4sZ2qbzz2FB+rW7BCThy\nS4v1a3dOOZ2+zqNWmyQNqI/1xHelNQuWDOJcltHl6AD55aBaoXPR96k+WmWq\npVlgW1sgYF3XugNVo6rCG7/r4E+f2rEQG5cCwAojI7Ae+ZDlUcV3iZEp3Eki\nW4Pe+n7C81DjyUF6L7HREpZwdrBwkUtAn9A07tEV8DSZvVEOvokrsl7Tb5Zc\n4Kw+zogKOQvi0GQ/X0VVhb97IVxZcSCKB3wZt+3x0hb/Z3+LFm7zWvxOIl8g\n80fkyk8Yby/UlVH6eZftXAjkozJkYcyEI/TqViPaAe5J3bB1LEDV39yReq1M\nS90Qvx+6iIukkfD/Vu647BnqXfxL5jkjpNxbD8gOFdeCUEO6ntrL7mdvfv0n\nMuqDP/9CUccp+8BjK5sjqOdgt6CO8K5gzG1VrO1ytWBiSNXNprVnse8xuLRB\n7AID\r\n=J2JS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc0d3c2c1bfdeb055921d46aed805067f3db19ce","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-bc0d3c-kx4rcdfn_1639405013458_0.9350065637665117","host":"s3://npm-registry-packages"}},"2.2.0-feature-44cc8e-kx4sojxn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-44cc8e-kx4sojxn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-44cc8e-kx4sojxn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fc6c1d023afc0aec4d2f98b1d4719a375993ecc2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-44cc8e-kx4sojxn.tgz","fileCount":975,"integrity":"sha512-Sq+L9fb8dCiUNcpNVBZDid5tq81WitBVfIPzyqJtNdDy5EoD/7DrIKnaF3U1CNu6+k8z7y5GrtpFqkCLxH8s2w==","signatures":[{"sig":"MEYCIQCnwbvtdaYtIOmBbHGTRLJ9vprXWDSuqpDiLj0NvQtmzwIhAMrqg7RARP9e0bVXuQN4Qt7JJUsTiMBDrwyEY2/NPPLH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJht16XCRA9TVsSAnZWagAAxLMQAJoh7seFMrb53/DvtBck\nRrO30bfpwoAHqzY2W66pmPXm2+896+QJ4PpGiT2gBBNQwhNXVIgGSaXbwVqx\nsyp7svgYcbAv3DMgg9rbU9BtyUjD6R9WwFjFtbYrQh7LQblf2SCZPgi4uIWq\n3uvbFSj7FKDmqKGilBTItkHUaIsptPWJpjsxl/QlZIhGXQ3M0zLL/UrtxVwS\nEUQD14PeTVpLKHwhFOXNVfnmo2IMVAFy7Xe6j0hE7+wKh0SM1WzHmZbjRT7f\nUFefPKu7inHe5/S5Uq4GKcqD+JL+60Y803ek2YmcpQwgUTBRqzVcEF1l/Y6R\nDXrZX25LXpgbOBfSGF775OAuQO2j1gkt7/YeZM1SbGAcm+KlU3H3kwkoUrCv\nr6cqwY53R4H2ULmNXUi1hbqkkubcSOdd4KQTDM0o+vJuN5RLpwT54/RNjD3B\nLk8DLDveAngrcjINNfntBj2AivUyOlJI7iNvjrh89biFhO0RblE42KT7TPx2\nOjR7+NE0PXicvsa0cGG3V9U3ds3tPanuHOzCL6OdPxgUDoboOr3dTvafFVKR\nyUDCUJi8Cm9CPQh52L8UqyD7MectGtjFBqnfsk0CJ46c8XseohSLiFhnujWE\nW5EqFyq1RhVGL1Uw2LECMxmSA02vSLJin/85DmMlb9Sl+OCbgulJodgx4ePA\nLVPQ\r\n=UrlF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"44cc8ecc1ea1c3e0500f73f4e17b7c3ac70a0105","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-44cc8e-kx4sojxn_1639407254882_0.3700563133872554","host":"s3://npm-registry-packages"}},"2.2.0-feature-301680-kx5v0rxz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-301680-kx5v0rxz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-301680-kx5v0rxz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2f1af7505ec2316b39cd10d25b626b31e3ea904b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-301680-kx5v0rxz.tgz","fileCount":975,"integrity":"sha512-DhCViWRJpwMXwid/u7XS0hpT2hV3+OU8Y+uZx9zr+465vNW9VQ8WMN5Y69GLk8dMfi2sYHD+UwYje2Ensx32Pg==","signatures":[{"sig":"MEUCIBoB/p/62AHRWSgADyNjcFeI/DbmId2jzQ+7VGPHotcrAiEAktlbdFmetkwSL16240p8HR1KprQ6D76H5XRVglhTOEY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuFoZCRA9TVsSAnZWagAAeicP/jTEUtZirRqRMDwJXuE8\nEO6zXuJrs0B1dR9dwvMw1H7JzXchQ9HFXhpfUyk/a47Uc2HIe10CO6WDg/Oj\nknEMYDYX8U256AjXtbpBj2uRD99Tk1/zysYLRzEHdy3890E0cfenqoq/k8s/\n9VgU5zxhclWXg97sznwKULiUI3dKWAptqBF7T65kKdorjn9cZ445toVaqtJ3\nqkuhkQkdcCu0Y5BA/2EMbbJZWONrddzgO4WK0GCpCctOQd+mFUEKP0UfJujM\nUwUZ8cWYLGBfCfYE8uYC0SM1GsETTJkbm1cIoxv2N1gNRPkIDdvmRChDvvbt\nnhnf0RzvZqrxi8a6qCD15eRDPpxvoN4/KIflFBlydsfrTPqdjhYm5YInr2Bx\nde7uXWnSNK3XCubu97IIun1flJuen43aAdVaoTc9QENyHtyJCnuKvpCu2yh9\n2NVNT9QfV1qkKACKeja0ADlkgz8HbikIh21YlP9L9gfLvrZNTZbhz7d+nWJN\nyXZB4c5Pa7of8wHtS4wr38ZO5ZjFceSFl7s2A8aOr3KWYgcE1qnpJTp8Q52/\n+is6sCB11aF1LvnJe/xs7flBXY+dMpytqba4bvtVVBJ12ppC8j3LuVFgyhNB\n8/5yU93TSJX8/eUzXgD8cEA/j0cV0nU4qBTTgsEZkrGWLdMoV89ptrh4dtXn\nky/E\r\n=ttPh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"301680d6238c8c3918e989f0e95e2dbfe5d72c33","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-301680-kx5v0rxz_1639471641114_0.4572757193278272","host":"s3://npm-registry-packages"}},"2.2.0-feature-44cc8e-kx5vtg3k":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-44cc8e-kx5vtg3k","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-44cc8e-kx5vtg3k","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8665e59f2b8010b9f7e369d4e13e0852a37e04d0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-44cc8e-kx5vtg3k.tgz","fileCount":975,"integrity":"sha512-enihFFgAWAnWtXvpFYhMEuMb3dsdU0evuX4fhrY0YdB/bN28dFjVQ6ZG8qNuu+KX7YXWeKOT3t3N2FK5oXmawg==","signatures":[{"sig":"MEUCIQDozie0MBYORooeYtGDaApXLA2RPU1lI8sGe1faOXashAIgKT17USO6ndIMmyzKAO4+ZKIamWcNa5tfXgIGCDFgCOE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuF9pCRA9TVsSAnZWagAAM1sQAJBIOg2VyGpU4hEI1p0A\ni9TqVJ228HrOPUt0h60G81nbluABhORU5vLV282itVqq/pGFUoFaDXTgINeg\nNTLX0hLIGx0A4PuaeuLQtIEzDnOSppKqwItJkZfgMtkgCiwe0GdMLhYWEHxb\nfQFDfYcrmBp1GrdTgRlhnkBtP+IvDSI4IVlueFweivDMxtt7ipXr/LWq5I48\niBNohv1wzc+PnhcKHLnXkcCtrV4fcZnjbzpyDG8kdumMZPgERieWShoakdRN\nHU2jZHNYdyZJ/HvCDsarD7OILkDBkAIZgdQT9uNmhkmWUN8ODLTRpM0sBJ/4\nYGQLpgwSFcdkWRiCBcNHzS1YA5WDVMJIW8AEzHKoKB/ZvVvWZWcVvVfA7vbl\nmvLcX8utiR3E8GgCNxAKANw4ZE48gP57JZ5fapTTe+sb4EMxmCTf+lENvj/u\noz+WAborV/sZw0CyusYdazbQfVQy/fO08XOUzSQpge7ceMTIEbBWJe0u9YRF\nZT3936N1D4vVZ75rCF4shdANkiNEf2Qg7vmmnBrEZ3BWTAKPVnS2dVlwk2yl\nMljs6wTHy1LSoA37vX9oceZEuh6xsNr1TiFPgQdmfY5fv7NnCD53VLOno0W0\nKG0pZpQSzxoqFRPUyh+TqtNwaqZiYUi6jg6RTwaZB1ZTlP+qZeUiZQ0ycHn2\njDkf\r\n=CSW1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"44cc8ecc1ea1c3e0500f73f4e17b7c3ac70a0105","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-44cc8e-kx5vtg3k_1639473001063_0.44667727923914113","host":"s3://npm-registry-packages"}},"2.2.0-feature-88b9f8-kx5z44ao":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-88b9f8-kx5z44ao","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-88b9f8-kx5z44ao","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dd6082787e2e93907750e5f1126b89d674803c5e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-88b9f8-kx5z44ao.tgz","fileCount":975,"integrity":"sha512-aWedphQ4gbfxNojmZHsZ6DHQJ9fBZyHwj8+7BcT8rA0zAC9JrZEVgG8GRmVvdgYDGC9K5xRNSDhdTUmX7RTWjw==","signatures":[{"sig":"MEYCIQC6mn064oPpZd4QbGqBT8w06NNQR2jh9g5Nq78DfjSPjgIhANrTd1i403hvVrmBcKMf1NSTVPHLR8RVmFJIqjKhhbRT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuHTrCRA9TVsSAnZWagAAjCUQAIpj5/d/FqpssHrtmK/U\nWiEkBBWV5oLLxE30TQc/WBJJ1KS6t22c/PaiMeBbmFbiNgaawSTVneaV6veu\nT6oUjLXUBloQsjA+ZPuG7U1lGUO9Bu0jBbXPyvayB5Y7z2vLydfDu6+7e87X\nNedva8omjnBlsnZ7kfNqM8KJI7oGyWk2abhGe1P9b9cqf77SmAyurCTFAvuR\natUsuecPYWPxjashpLqEyghj3TsX0qFwSD7nUUv1Nkh1+0nvJ/ea1J6dXfTD\nwptINsGvM+500hpGOBoILZa34lUGn146QLFgb4NXprFxaFQrOk/iLP9V6VtY\nWoDVLx+YHPfmx3VxjYKWecvgG6JEWqL5Fmb2ZpIr8NJcHU+bRnVBo39/GgtO\nuXUdQw1kMZcfwUsKrx9+QF5dP2cGj3oXb5VVnRa+u//UZfKHVrLRT7VEqCsC\np2EedcOllIzM7Fp4hNwoM0XvMQR186RmByGnAjFNjYr6QabXIAcs6CEm5d42\nPatVobN/SkkoniEydwiFhgvGkFpitZ4Wmtgyjr20ClUWva/QyvqNcCUeDHG2\nPE5XbshDgl70DUApS6zB0ttE2xNKLAyVMTuoMmC3ywSwcGzEyCgM4qNiUOPS\nvHv8NW2K6yveoKh/HnYHQza86Cn59LupvA8zqLXFEnsh8ICTGIk7thYhKhHe\nFJx3\r\n=YFr8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"88b9f892274863c5492eefd1af270c5b4f1f5caa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-88b9f8-kx5z44ao_1639478507500_0.9097197923786795","host":"s3://npm-registry-packages"}},"2.2.0-feature-caf2f8-kx5zdjgj":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-caf2f8-kx5zdjgj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-caf2f8-kx5zdjgj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7f3129f061c662a1be3f869d6c27f72892fb824f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-caf2f8-kx5zdjgj.tgz","fileCount":975,"integrity":"sha512-RwMoTTMKvmNTS82BZpGpsexQroFzSLf1/UAlEhITMBkWSv1fNeWLW763Dy62ogidBeaUJcUhTYVKIqZB8fdiBg==","signatures":[{"sig":"MEYCIQCfZLnQsMkZnKsYVS2vmo9UAR8ecTdIed0X1M3NMoXQgQIhANv63iO/npmZKrtyWkhlJAZnGktpIzgoRYPddDIhSK6X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuHarCRA9TVsSAnZWagAAzqIQAIBNCzjs5Ji264Natgo4\nJcvdrxVHJBoP87NonPL3egbkejTkshxgRYw5zHA44zIcreLHd4vGc7RLp5Gp\nrqgZKOAgXfyL4kf7lftJI3XPw5F+/K0fTykGA/EdUSO8JNrSXxbE+geBDleS\nDb5fjdW9eGdXRrsu8uZ3nNHnty3vsyYUOUkYby5K5F7iJjW9t6rlrWyCkNI7\nNn7ZjJH/AaVRnE0tP789pCfs8b16HeKe8bmhmDKG5zO1ru1a/G27ra9j2z9j\nxwy/XgxCgUbTR/NJ9SsoSy4XCFvZLQ4MmI/wIVFLBfQ2dxxjnGK6aIf/PfTf\nq2habavz2xKsvaNK8mEZZIJqMZ0zHqnfNufZjrUuXe5C0R+UP3YGuoT6FZ9Y\n79eT/20Svem322h+qo5mzg1kphWYGoYGDDXFfb5PIsDplc84U5iDGgmvCVPo\n9DoRRNc7SxaDic8PUkJcEIGqtEJbGNY+s6vr1rpqR7kH0IyHxLaByitKLwwe\n6cT6JUexKKY3rPzeMfr8PJLtnmIp0whzAeZjmtO929JlPsC9O5J/5HDPN12K\nIrrR/vSG/+lkN1eUc1dYaomUz9G0iGe/XQHlE/mXiVElkr//iHinEFky0ViO\nWTSCVPCpgIPCi8OJnhvlgYy6l8Vk8xhctxRar/1I9uoVQNwdXAeleqNNcbI2\nLpg0\r\n=/OfT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"caf2f8feef347d567ebfefbff2b4a8b164460b8b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-caf2f8-kx5zdjgj_1639478954967_0.047014367731110784","host":"s3://npm-registry-packages"}},"2.2.0-feature-22bb25-kx63dqrv":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-22bb25-kx63dqrv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-22bb25-kx63dqrv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"938d3de8f559ad34a3395259183d8a16048bfb8c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-22bb25-kx63dqrv.tgz","fileCount":975,"integrity":"sha512-Ib7euU0k47efQwogYI1A24LlfhDyug1A0eAdw/sO5RXJgrepxd4dTG4IJRgZ/gPiX/QHR5tkHZgEQ+48pwjxhg==","signatures":[{"sig":"MEUCIDkSqOd72tKuTo4XSNCsRIVcRuzHV+4/INq3TyLiOXi0AiEAp9GfZidBCZFOofEAGcrYBW8SWQ335ogVgVd1SACWang=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuJENCRA9TVsSAnZWagAAOpUP/0XkWj+FNQ2iMu3aGWez\nXdN8SBqI8gSf/12getVaDzrjxnJremPsyU7pANPKE0DawkYfHtVXmuLuynAX\nOMpc9HJfgKDslROpOmDZmLU8Y20L8ix25cvL33rPOwZJHuUq4gJZ2RzJOLkc\nZ7i2Af+zYgm7jAp2nFhEwr7nAyTdpEUeydm8XGz0wqkTihOVvPEXqrV9W5KL\n+lEob3YiziVnzIHklzFZTh9S1F7OiLRr2z2WuV41Q/YiFgAocmUEqsA6yp4d\n5o9AwrPCXZt1ZAX9glP8CoyrzftHi8R0St1psqQYI8V/T6jc/fU55EHzGA3m\n9iMNEVLAYT0+axK83ZcCyXEWis9fAJQPfwdqeehX0nH4oSVNP3BRnQy4UAk5\nRJ22ueSa6nQlYKv5ixEEirW/tMMNYxaDgIzx9McJLSbN22Di1olu8pQGt+np\nwW668/uv6RIku4s3cZXVtuCMIBz4+HU0Oroy/FIY/v6gc8K/GnIc1ZSkmfxQ\nXNJ3Rnxz9c+ZRjG51GG/zQs+HVOjYFwPH8CnMGhYErBQn74ldq+vJPqG0DpV\n/JqbURtiXMjyiIxQRV4tgZTV8fJQIjb1EJdct05tdJdPA+D5y9uYnaTXDdqj\nnGIyijhEOJ9IU6TXKvvxuoWjz/Dd1psJCawm3X2/igBmEKqYmHIT/p1SWRJF\nbYxQ\r\n=thpq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"22bb255a73906fa6cd0d61e29d39e95ecc97d9aa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-22bb25-kx63dqrv_1639485709342_0.5039409583370815","host":"s3://npm-registry-packages"}},"2.2.0-feature-ea5956-kx63h0qt":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-ea5956-kx63h0qt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-ea5956-kx63h0qt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"658bb1738ff00307ac8c541ff1f81bbc1675d907","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-ea5956-kx63h0qt.tgz","fileCount":975,"integrity":"sha512-MY3TrrBhTcX2wK4xRUTt8Ka30QkmXwxATHHp6xflJaPatan0Lxhtc35cpXtt1CULxWStF7+sYWruHO+byuMCOQ==","signatures":[{"sig":"MEUCIHF8eL8vHIcegtZigsl7GnNDW9lVlDMhCNOOYeVFlkDfAiEA5fl60LauAgKQrvPuW0UsqQnVr5ILXgJQFFQeZZ+LElg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuJGKCRA9TVsSAnZWagAAiNUQAKNWt9RxSfJXDcSlwEMU\nxU+EMyXcOO9vAdO6XSVFePoQJbD/tJBd79YNQQlO2nhbXXyz8UG+mN4ggRq6\nWuC9jPHVZtq7keq5svEdrwny40xVSwsby6HEbCN2Pi+BEnCi5QEOc6O8sowN\nhd0X5ytlg+HRbiN/bTet6Nxyt86Ug+LrapEQMxq8Vy2sd/YKSMJw0uKOGohz\nB8puSBnYxOyN56+R47SLNf13X+Khns1OPKIC3fwF8JmyCE6w7s+2vFLkzoCy\nDBZeI3LmZkW4bHHzM1fry9ERhEX+r57pqTrUVqAIzLoxL4srsyw+sp9ZKnmd\n+Nd/LNH7PURyOHMKzvd6iDfOzF+4r7P6Zfwe70oNsXXyAnh7MBMV7YVHMuOj\nn3kgR8s2ulBrsqqC3fRWVHCDzFO5nmOD30GLPD/4qvfQ8YrimKdv9b0rDXpx\nN3G6/EAR3W2bFdYmaIlj+eKajAVyRDtKX26SRjZppbECoI3H9Ceo3CgiAdd1\n7M3iCTUNT4lAEx4wx09c+mKB0oqKACe5PnVSOeWoxt/oW+oxnrQHK9JAjVSO\nfr7q7f7HBF/hWAYWMt6KOo46CpbUY4+jXe8GZGmDcFrLQyUdAR+h1zoUjcc2\n9nkaDp6o71lpQKRpxIZZBVgJ8H4/3p8DUa5I3StcLnZ6YWdtof/SXoKVRmkJ\nzo7d\r\n=m83f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ea5956465eac826c4ba01982e17228ae30002182","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-ea5956-kx63h0qt_1639485834085_0.2886546388100528","host":"s3://npm-registry-packages"}},"2.2.0-feature-920289-kxehnsw6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-920289-kxehnsw6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-920289-kxehnsw6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"035c50040b4d1fc075bf9f64c4dd835b1da32d54","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-920289-kxehnsw6.tgz","fileCount":960,"integrity":"sha512-wu/y2SS1eydlKMyNVcmwlhZXHgKtTpHGLf7x1M/vRi+5ST9h1GHk09LxS13PNxkTHAyCRO0UtrS0GmG7l6orWg==","signatures":[{"sig":"MEUCIQDEIZUMNh9GBD/mCsqoaP/sbtZTH9bwkTGEaRUG+tZAPAIgQMJ0ACzU7u6lgAroTMzplO3nynVE4ujJOFAcQaAIS0Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwFA0CRA9TVsSAnZWagAAjS4P/REuQPW3FUWglpDiExpq\ncCgYt6ybLu8pyF6McRnrwAttYnRX4CNDOBV2wk7Z8sFForAUIXDxXEmiOMJR\nIBy2nxjfImatAKjMYuY5nHFZkTv/o6ORPJiDzuF25JV2Cz3ZyuPHMZhnVG45\nlZfMxf5QUQofnyLLf5sxu/l4M6brENFLSpDtjO+LKV+wflGuL3rje4DBjz1J\nuXXsQZ9NHBahxeQK1/LxjSr5hDA+xbOL9Etv6Pz2IYVw1b/bm9HMdj8MnNjp\nrr5xeNqe2BX59OUxG23sdbIjHYTWngCmgubC6V6HnPSGLuQsZTt75Vb1x7We\nK/Go+/bvoVXAZMy0IIguZsqfvKAqqgusBsS2s57+YmHdn4dY9nnMTFkoE9T8\nTqUznRF7LwZyHVbM27Pt50AlFXbWAKsUVUz46s477BlctSaSL+lynxrb2H4X\nztcPiam+XkVIOfLOjYrUzunMyyuE4/n3pWSBtRhNCMNSog+V6WGLEQ37rjnl\nzSkLKRH0KPTQ1GIEOGJ3pJ4py5/YAdCJzXAcRNR/BPV5ly/URfpV0dfl1X6R\nTjdQY9OZ5hfwnQj3A1GGEvZ7lGeUuD1VTf9YXvZjorf/AggyGbNOE+EhJz3j\nuvhDFrumFqDBlKg/QUwQk8BkTYpF/8t76dWkGq/t/17dxd6Si2TleE4U3yyu\nIr34\r\n=BDSE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"920289f39e3722697ce793039fa2684b4c812328","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-920289-kxehnsw6_1639993396137_0.8215708011784122","host":"s3://npm-registry-packages"}},"2.2.0-feature-aa69cb-kxftisb8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-aa69cb-kxftisb8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-aa69cb-kxftisb8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f305269e17063ee2cf02f0facaf82348fc40dd45","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-aa69cb-kxftisb8.tgz","fileCount":975,"integrity":"sha512-2bD3ec7A0zktExI3FPlJf55D0CpcQxFs0ta5Ob+R6IOlrIMnzHLf2rD19bLE1OIG75R7AMi5XvglJLB01ZL4Yg==","signatures":[{"sig":"MEUCIQCV0PtRKkx+9OfOcNxyEhWGs1ZHow/nTLb3BoAFeMFZNAIgW9zM2Uhg8DISYo+EhK5zmehj2aga92LCV+e8bH8jF7U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1644964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwYpNCRA9TVsSAnZWagAALk4P/3KtuFmQAb0y5TX2BLPb\n1wx5e0RUW1gC0IogPHR8r4JsvzyxL0hMr52zD4ZqfilzVzZzdG6texTHCIMt\nHnDaIs3Y6OTeaSXVKNHsLtYbXMxxNnYx6BWBoi1mm4+Sy3fVsKwkIU2v8adh\ngUgE9Nf2y5LPs5anhuOKQcDtU7z/Rpd/izvpAFX3dVMBfmmbhS6YdqeW3O71\n7h7NwBMV8V2eqSx/+Uigd7fWI/2jL4q7FzcN6bBAjX2j8Ac2xGpk3+Lrtyc0\naPP6hDetZWOPdVM4hMPFBTNCpbNdMrQrEHDD+1W9ISKtGbKJ2lW8OP9g9RqH\n5GsKraXjwMJZt6cQrdcTxUKMRljhGp8jbVTuBI2IKMOZLJF32JCtbxC8O8V1\nWPkIZ1hWhP8P/lHALNmNeodeXA1HzWk7mZLt4fMqfXrLWfDKV2CgYi0eliea\ndVcEBZ8fuNYalIXLoet4JWRUiN2FQzoT4nhERAigzwr9sYqQ26xYQmpeimmq\nd8Ykwhng0/bNvQy0NyNkHFCL6FThEwIyEchAZ9E7FM2e36ahU/5Qh9ccxszO\nG0koJCNLQv5L/Q9lRjHyQMsRNgicKqcI3lc7ttH8fZOdPxpNP8jqhi9PTS00\nsccVu69ccEltpTcTDYUl6Goly7EK+TuVkJ8VRNpSzHz0x4wa+EzZnaddWOk7\nA/eX\r\n=A7/j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"aa69cb57d7514bd61826f241ac938c4028de7f3b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-aa69cb-kxftisb8_1640073805658_0.16607905885331053","host":"s3://npm-registry-packages"}},"2.2.0-betafix-ef2c0d-kxg4pxol":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-betafix-ef2c0d-kxg4pxol","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-betafix-ef2c0d-kxg4pxol","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a6ccb0a81e4b1445e466c19c02d81db66f3c1093","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-betafix-ef2c0d-kxg4pxol.tgz","fileCount":960,"integrity":"sha512-prvd6z1FGOQ060eBfnIEKy1jAfrHKj4cUI66SN5xp0LFFoLhj4VHk/RTjUrv/AZ7T9RLgDB+1r4R7ivwDNnzPg==","signatures":[{"sig":"MEQCIEfeQsoVQWPY52DqDhNZ9i5ctPxWKS3gFZF7WBpnEQxAAiBRkyppWXYhcS+tDmPZ1nkXFT4ljrawPLxrdqMCWTzWIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwdPECRA9TVsSAnZWagAAY+oP/AoDPNlQnAEMO2mYKIx6\nR2T4dICIU7VPylxLHecJ3ufs8Sq3QC7cgj6eNqjr4Ptxqp2Xn2fVLPBChNr5\nFSOQTFfebfv+LTfp7VgOnfsNvbAetRLoCT8f/Ofc/u8UoaKFQXSLxcTSi/EU\n6adewvBsCLD2XZSSSQ/RCr4t4cxENuaiFNJJdWgiS1GR7ad2oSpOWjTnOPUh\noU6GISn4r1fOH/lW27gc1QwqAkATmRnoC1SqbHD3Txz+d6dhbXktMzAmY0ML\n93GPwnj1uQS58LxgBFfIVEsSNmi2SGvnkCqd5kJ4dx6icLlL1FN6b5phX3zI\nLqcEk3cWv6uLXplIabTEDH+WNlEx0mMtMiuXcNmLjhatyWHMSEKSe9am8PSg\nhvORNqIZ46l0EdcByMn0WLJzaygmCDsi+tz9hSA8UE2wRcl8rZgKfXQS6ga3\nRVbZaam4WfoEadrIX9kGWMRXfnBohIgChT++b1BjsYVUc9WkrI5oNylwMMVp\nZjsdMuuMeq0sBI5XMXG0VAe0CYa/x22faTPnd/EahHZEzy/fzP/YURJRtOmV\n3lXY1sKUC4hvIbiQ5nS7RgmdPe+u9UuwsYt4afedRZHNXJvRDzOGEaUF2s/e\n+sQ/siKsJBpE3FQWAk8Zhg+t/FiU6iryQFsuxQzbPTs1fPWDq+KtzEA9paCJ\nJ5Ki\r\n=YZJG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ef2c0d23d0aa9c2f17166540d7a251b7cc3d730d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-betafix-ef2c0d-kxg4pxol_1640092612245_0.1688276901728909","host":"s3://npm-registry-packages"}},"2.2.0-feature-2bc128-kxgj4v9z":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-2bc128-kxgj4v9z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-2bc128-kxgj4v9z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2ae62eda85fe660ba35d98b084d252617b8cf383","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-2bc128-kxgj4v9z.tgz","fileCount":975,"integrity":"sha512-qBD4DjG0yakRYqCBV+Bc27c/PtAJRd4zk9BO/W+YxgMo66X5TALVVLQbbD41V8e2g2Mb1QMnSvgaNZelfQCVqg==","signatures":[{"sig":"MEYCIQDC0FTJcDrRR6bPtxqaz7GblljaLIE/Ui8wOTqH37YJlwIhAIls5AdDRqvL2ySwe3tktV6/czPcqNQ9NxIcmRSMB70N","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwjJGCRA9TVsSAnZWagAAKlEP/3RrMwSZ42t//hrdLipK\n3yjrkbOd6kWp9bEg8q7SdZboamINWME7KR/GCGX9fLQ4MDrO9jBTqBlYPy6d\nJxNOarS4xa3v2j0ooh1dV570Y8FeyF3R1/n+i93y7K5DDmec/8nj+Xmb0XjO\nWls++OZgK1a/6udHK9DAHHs4XG3JWYlOcpcVLjx+O4GixOFIoQicfaNU07Ym\nDvcEUpkGOcMl5QhoPniKZ23E60W4/3jUXrF0iPlMe4G7O+P3joCiH5CVk3WX\nytrCiRvU/uk5WgM+QQrfzZTKjfAmGIfKCWQ4q7/S8Ug4VafmN+p7BZNsMNEQ\nu+IsiB2ahprrXbkL5FzZoMw+ChYGcHn+nrkCHW2VOHLHRsvmKgzcsJmg4nen\nsEDgVoJLOWBeLhUIPcCVXgaayJZVHOLArmHvAC+K0e0nmJirhTC7xTUxyPj1\nZQj4F6IO5KuuzPnZPyoOibIuYu5ubCra0eIO/UuTVTEcSzekn/OCOGzufVSL\n1vRiZyQk2BmSIz624jpjTTgxI/+sMkMUQac9KzjIGfhym1+TvI0BmV+B6iJx\nkTwi1ozS/3nSRIPGm1FvNKdoO1OEIsgTAIxczCElHRH9XXeF+s8sIGqokAIf\nrTslOK25VYAlUYl01k/uh2cNQc4N8OgJK2CPOQKLqZos7fIASXSsIK8m3yBI\nC3uP\r\n=yQyx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2bc12827ef893611c60bf3e58a801e00862fc427","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-2bc128-kxgj4v9z_1640116806495_0.9381913277304434","host":"s3://npm-registry-packages"}},"2.2.0-feature-01ef90-kxgkz61u":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-01ef90-kxgkz61u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-01ef90-kxgkz61u","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a7a27c8e336c9bc66d6eb8617a013a3a94291fe3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-01ef90-kxgkz61u.tgz","fileCount":975,"integrity":"sha512-T9KrFKWVmIiKBdlveVjZh2mbyUE5in0ET8KNtt2nyya7ohwm/9SEqWpY3nr9ZvwxoeaVP+19mXAwIE/08flP/Q==","signatures":[{"sig":"MEYCIQCkfHJgWLwuVpPs2viKFPeEihamo9qQk+YpzDv7IpLAIAIhAMa6kPle/LNCA41wbIzDKxCOmZNbm5Cn5Z2wqyJu8NdC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwj51CRA9TVsSAnZWagAAvrUP/0h44dq2Wkah7Dna6pyd\nn2yi9yQrayoM+yKaP62MLCHe9ZtMnvXCNPkFDsTekh/zD4r3Vbim9XCBucui\n7dNL/t3IaMAcahayVR5+A7Q32J8dHGhVQubYZAZmpc2b7MWZXOAKfJu9o3zm\n5i4snZCtg2/GdBRxYM168P1OVakKlGAZFGeHX4vAF9yUKsHzJzt5x9t7M9cm\nUjAe4hPoNkpnJhEEG7cwEeruQ0h2kpri9LDsHTjop8zCJDy0juMWLOUYW5+V\n9Fc6mMd5/oG7GWQTIgrXnpNVMkmrwnQ71M8uwstZGKrYWZyV2Eb8Tz3Ye+bB\n3VfyGa+XR3vn4dmkHSZEVBuM9sliau41pdO8EXJd6jnQB9SYXb1ckbUSGL1G\naFn6Xpicm9eu+cFYvZZuIa1CdDooA67xZnJdUtoI8/VNduw9y1JvS/2yutED\nB7CWPgIpsswQnDXeLCy+R2x/JESlfYmDqI8kilneTTiQo2zSCuVpVBDm3fgY\naLZmWnuaHC/kgEFtiN44fA/OMT5ST/wGJSLPeb/c6hH1Gw9uGs0EpTYwZOqi\n9Lmu3m4paMKqv0p3ec7AwC0XSkRKTqXMLJcoZ5kYGOy6bWvXGEG2EE8lwbNu\nWkJXh0IsuoNecE5OjiliqD+ylwH5XqPiVXHXBLyrilR8B6Mg7QBcQKlN5PJV\nbyIn\r\n=m9Sv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"01ef902d256350b493ac0639d4909714444fec74","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-01ef90-kxgkz61u_1640119925480_0.08265520536271409","host":"s3://npm-registry-packages"}},"2.2.0-beta.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d192a452e4e3f172af0dc2bfaa12f78dfa55a34","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.6.tgz","fileCount":960,"integrity":"sha512-SUM8rkub45n6RhvgMvdubdeSIggxK/V9smFJ/kVOz6c373AwNDZO+xTr9Ww/+Tsb+AfnUqU4HvcyMpkw5Y+jhw==","signatures":[{"sig":"MEUCIHui24lN20cM2hSzkocunOYNkBiXqt3vKNeVervADtgLAiEAxHNJdxD0sgoVnmsCDy2tfK67DtlL92wXnfbTLCfgtWU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwuGDCRA9TVsSAnZWagAA6K8P/Ay6ChtNmXWSqbaTNNoU\nsQm84hzKY5/LuD2HYxe3p2LksGMWSr9C9sF3UWAXfNBXEi7vogSrvOGkqOuc\nWO4CBFIk/Mv6wrrYbvO5RtgY3lt1jsZZ0IacUvYGI+obfEOjM8aap7PkJ89o\ns7neD1ky36RUEOFkpge9nXDUkMKsU7BluSnKQp0GIhAUGeG2PZhnforPXvt1\nMgucRGQ8JSszTEnW24nVrRzWNTO/zq0WNLgDziPhG+XRCmDr7aFwUgCZX3Zl\nyrQqPEtytJISSXfllD+rU2t2Wq1SE6Fw6QJtNb0UhB/wBRJreJgk/mIMGgV2\n5v4DYU6ReyWUclTFO8Aw1EN37Gmvby1SJznz86m63Bkq19rURo6mFsIi3WmI\nwVZpZ2yU16nnlPXaH9nndImi070pKTJ9R2ueD3v/wdDTe4pxr6G13WLm/Msl\n6Z4CFNEbHXbfbk/RSHhTSx9B71uKfG5EonWRaJQEwInP9EgIyGm8J8lPJPqF\nXMwymL0UJ2s6MfStzxpx55aOrOrVJTMW+NOpwrpZoOW9YZzP+iqb8TYU4cpB\n7jDkokxp31IvuRrTw/PAob5kLJB4RFCWA4gkEmAfloZVEy0Voq70VEbwI0By\nyUYC+syfrWLIvULCZWbqbsypVfCP5NytwOWHRva9Frrp4V8Fyx1vA2q0UCa+\nixmq\r\n=o7eV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6f2ea1fbbc49de3e617fccd9b0effe600826df20","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.6_1640161666866_0.4989375322201892","host":"s3://npm-registry-packages"}},"2.2.0-feature-f35f93-kxhajoc6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-f35f93-kxhajoc6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-f35f93-kxhajoc6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c5ff3774ab5ec74b43b605a1992230942d8e4673","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-f35f93-kxhajoc6.tgz","fileCount":960,"integrity":"sha512-cned5ypi0sfI6ul8eEYhzcg1nTBEOThInPHsWbMoz96tdCZ8g/Ykxo4mLeCT2YOjXuB0B7OrUB0JfUcigKq0ig==","signatures":[{"sig":"MEUCIFHN6MiUwvXC9wR3aGN6R7tixOzwixKSb8DKZcX/AOlXAiEApJVSjJ5apiwuMYvlj7N4QtTm3PrgGTKwXbN/ZlbOojc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwuYoCRA9TVsSAnZWagAA68IP/R70jLcw2dTP9S0PiaUD\ncrMyhRaCueAUzk2JjJIYPCjDP1dIo/HCNqJ+UZLpMkNy8X/X1eXmZGp3mByz\nnY/jflutK8q+4ZjRCHCuJ9Jd//TEMdyXWPaQg0hyN5uhhY5qzRjYuCJnoPdM\nTHYU2cbnlFCPiBv7VoiQAprBW43nk+zyW7t7yw0ADnIbt2QJWvujDZGRIuM8\np/B9mIuCjSjD9wOP+AzP6EXFU4dv9air9R8FR+AaUTvrvaQhHH7R6nLO5Pw2\nuam3BCP6n5goBXbrNv9AtlgQju/Ty32E8a/+slySKUgB4zp9EJL7eMiQCv0B\nAT7cZYtzL7xVUq0UsMypIWIGdQmF+9M/6CAm97FTg5ptoNO8s24mg5lYMkLn\n35v98k+kruiCcv0JqKNmNaafMmnPdsec6/y+VymI4XT8YHjSmqDjPudMfK6c\nZQnowcn6ZhhR62rWRCICit2vWg/uBFQqYO4hc9RdM4m0tFVlmTccV5b3sCmw\nDV/e1EeRJ/3T1K9mBeti3/kk5oHaYEi8faQ79r21/NdTve9fHpmsEsNncJmD\nPkNrCcPPTZnsVD3xavuh/WeoVM62pAehOdx1KATV9hRoP4NcP/NvaZNsC+gs\nHIxtuEJIAbhaI5fuCxD+F5FOKXk6j6DlPGx0833hxW9P273F+3xX9Fo+4Dnr\n51QV\r\n=L+ls\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f35f93911ca6060dcce9ec16e88ae43857c4e2ca","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-f35f93-kxhajoc6_1640162856114_0.14497615416392096","host":"s3://npm-registry-packages"}},"2.2.0-feature-107759-kxym5i5l":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-107759-kxym5i5l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-107759-kxym5i5l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"19195b1a5a9a75b13eddb6d38d2eef3c788ea07d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-107759-kxym5i5l.tgz","fileCount":960,"integrity":"sha512-aTo3K9W13t4SWNZgk7SiOq73NgMvF6Equ2lfTIuBY0bUNbNk2Ro4aC5MYtbJDbUrDjVUEjMc0rXhIcM6nI5ykg==","signatures":[{"sig":"MEYCIQCtgWhI6JRBQc4StwFGKsnzy8OLWgvCWvNLjrFKHXZhWQIhAJrcZrh/MSygj9YJorNnypTT6jZmIfShlJjg4iaPxwh7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh0uGvCRA9TVsSAnZWagAArvMP/inZzw3cyDyHBMbGZMpN\nJOcaEZvzN6MyvgVEkXzg+q/dLKoi7AUj7lk5ujk361Hk5OHRXJS6mKigOTtU\nM5Y5SRQ63gUDtxRYp0cEQMWg1h5xDzTkAQ07SEC/Nr0aOxO9v/C28ucG8e4W\nYJM/PtS5ohKKPEQHPthNQV14vRd5jlxqqMEwBHdKg0vhx4gjkWEWh8uFB75b\n7iNil3XVGm3y9tEA2CbKlP3e5Fh4OIE65CtR1KjpAp3E/owcP7vOgJbnP8iC\nYEQ/T5/oXQIZtm/79GyIfPvSofpMlZEcsrSee9/LfSgjSwLypOxUU+lK026a\ntBn6RHAuEOiw2HT1J3h9hqcO2kmN+jmj1Gos7QtNjI6ISxNBNkUz9jGS9N71\nc1XcxPWNBfr1GKkR4kFoEfMoJ9Ra2MMc9WloGPDQzVFN4MVqOq/k/J79kOk+\nCbldxMTyvWlLv/6TWuyosGtX/ZQE4FbOnb11peBZ2sgEbKKMoe7ER5GXUgMB\n9nGI8EY9ITWv86UUOWgL7VjGZLFwQ8qLiI4sL/KwqZPnYqlcgGTz55lZBqE/\naPf9jjKidTRRouOrK+GYdlKg4HTSEAMJTB3gzwRpd/DyahPv3+D2EZHHidTU\nl2LBjAtFuHg0ruzGSv7R3Dgb4s8EGa1okqPWqvnF4qzqCw3jfz2aRJOmsyWA\nXlNy\r\n=QWV1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1077597d77b8478d971d9c696ab767ab7cc22587","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-107759-kxym5i5l_1641210287815_0.11635091016642929","host":"s3://npm-registry-packages"}},"2.2.0-feature-d7dd81-kxzxw4h3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-d7dd81-kxzxw4h3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-d7dd81-kxzxw4h3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"80630e52bc0962a32c3b79d169afaf324895c69e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-d7dd81-kxzxw4h3.tgz","fileCount":960,"integrity":"sha512-IUai1W1EI5EW87VrF4bzMDtRaTXMniTUWovkmL5BsFGhvAAPRAINosFlkPzVm1ODCLYQiua9BLnRLx7DWuwiAw==","signatures":[{"sig":"MEUCIEUi3Wq6Hz9FXDWIvPQyL80La5wbRFS9Opb/ho+jyInUAiEAllELZHpqQqLENVBqVtoD26YKYHR165PFZwRHYvECsX0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1BrUCRA9TVsSAnZWagAA/4IP/johOr9jzrzqVbTmlANK\nRFFA/x6x0NG9dkjLQId2czfC4JXZANQsAU07z69lNeHg7fVRwPeAyUsx/T+9\nS+XE60o7Q2ZI+T+ivRkcRestpgPzSurKBMzza//IRquKWCMKWv2RIqQzBr6u\nWeh2LjqQCfdXA1lI9DviB0Z/kcJMhoa6Y8xrnSVWrROytXSzFLHmahDkaNJQ\nvUozem7eemrl4b0K9x9SlvmeJ7v8AFlW4sM7OtopuWzD+8gvH8ukirLP0etK\n5MTxjQXA3L9+XPCa63SxkvyuPyvcSwsfTYo7I8kgQJwfGR7dnTs1EHXigJAQ\nOB5mc2VZxMBqjv/xP0jHfrb2W6trsEoeGFQclWLvjxT8f0RwDpaBYo3AauIy\nS8qUn6SPOZ6QETiSPJypnJEKoCcDZH0sSo9L5rHVo1uo3bQCP+hh01vtpKn7\nhD1WGCBBXZXr6+Ugq2jfXr0p+TkTayfqd4bdHOemjTYxHcSL1ATJChnXmgws\nA8yAC/udz9KXR3U1oz/x5GRoXFL9G8NzRjtNEnrC4khZV8/4Ja2lu/dk71Xp\nG+c2O1d08xBCdtR/6TkcR+v04l2g82n+elgd05wy9LY2mF00Du20GHcY5kgu\nJ5oOcO060/+sZSU+W3ZOFLjHhZMrm0+cp2lgFXcIwFIdAKQHVRuJPmXmJrLV\nZf5Y\r\n=X2rN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d7dd8173d00153057548b2b7ab63712b58bda1cc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-d7dd81-kxzxw4h3_1641290452456_0.825570028557036","host":"s3://npm-registry-packages"}},"2.2.0-feature-733ae3-ky04lp8x":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-733ae3-ky04lp8x","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-733ae3-ky04lp8x","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0aec694a4e24b61151ec179a46e30381f4369f70","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-733ae3-ky04lp8x.tgz","fileCount":960,"integrity":"sha512-PVstw12UwxGtgQZYCMWlLG916Obnr5QT6BPscGY8FHSZhAf4nYmqzYMzsOD3Gu98nWBq7howF2/gzLXMPYpqwQ==","signatures":[{"sig":"MEUCIQCnglPvCDinzHidSO5zC434mTpdjXn6Cr1W1QcLUKM9qAIgaPAh0WvvF/smR2+7t/lZGYFpR/LKJkj3Mda4KAjLKd8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1EbwCRA9TVsSAnZWagAAHY4QAJifk3VxIiDx94Uo0VN9\nnW5Fp15gWZsw8mDPJqXNLiEZeaKNy982QpIM4hII0YJzHMKwE0TIRyvIaWTO\n/sjALnAuWAPOKT/F0Znevg06cXatgFjpfzwlZ7KxXDEaBlveX3pBY0qdK3IT\ncYLcgJGV7MQECQ7urGyd6QmlBeKjSFJUiK6qmDxs3NEIKd/Sg51Yyt/1bYWe\nh5zd0ri/Wd17x9lAwbcLjGlUwJuT1H2yQiAe6IgclO3qj6djkFjrXY2uVYNI\n8R+nFstpAL59kvkZi9/eImc8nP0NRxJXsOYtwIJnUEPvykxo7oSye7Al1iNy\nLi2plmRcIAYIW2JjyS08BBaTMBNa/FADcPJojD2quVqzUOFPgIMEh7ebrAF/\ncsmDQCEYFKi1oGwaWl9u4nWZVE3WzaVEuFvS+69K2dRlelP+EzVB4UxRoIYE\nG7GjMvT7L0z1R3iA8mWtSENtE02dCFxc+6aM/GVs5P02sxj/y/Zn8vTVS6If\ny+tpSLKBAcPpxR5ppf4X2r8xRUnSi277YfT6vPE8zYgBnTUS9qWQzc0HPh7g\nUH315alvYhCWWiafQvar0nWhjINNDeHFlYztIyRSTHiRImrfEpnNwHMUF6Gm\nbA7pggPFlK+uWqQLKhFxPx+7c4HYn5pPsx4BodWFx8E9BJrDJjZ3tmtAJimV\n4vnv\r\n=OfaI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"733ae3ed61889574c8f11f19585fdb38f8d7b50e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-733ae3-ky04lp8x_1641301744540_0.12072249604985874","host":"s3://npm-registry-packages"}},"2.2.0-feature-92df7e-ky18ccg9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-92df7e-ky18ccg9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-92df7e-ky18ccg9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"090a6521dc513e82c067578ef2c0b2decdc9db61","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-92df7e-ky18ccg9.tgz","fileCount":960,"integrity":"sha512-Mc5/0RTUc7xlbXbB+agPr/15x6oWUuCiQWQcIGSkXKBXrdIN5xg/ScMC/hLyoGTljf8iO6BPXrekKeyPnufUyA==","signatures":[{"sig":"MEYCIQDRpYu1xpZM365LJvHO3d48SsiR7PZHr9Mgx4p6mmMYZAIhAPbW8ZAgRoF1R2iGq2QPlcD6dB8fYx0y/AHaG2HCSDvl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1UuTCRA9TVsSAnZWagAAHwIP/0ALVeHjkvKGneSxkl7y\nU052ri55INr1IKGrpt9Fy7qg1tNjsnG+GL+8MPqeiK9F3yYH8UdnVkgCqi+f\nb65CaTpZozrrtOwhckPfW6e3j17v3z2RzFqcswbHZb2eC3u1umph3pbnRIYY\nzOah9zZEl1dSM2C+OiLaZg1u3LXNQUjyTeal7U0IZX3r7ZPj2Ls2zBWY4DiS\nYs3BVBxNyM3KM9OcsARZC+M2dv8svp0pdoPIEjYHJ8ThNjViDXSGL/ia75EY\n9libdJgzTuAFmWSisXY3ROZPC0G68+11MF+hjjTQjcIyqe3DwkodO5X3J125\nPLmNwN8Cagi9NLkv6bkNp3GbFZ1qRG9i1qQhYyuAmI/CdTu8XX+QV70GucMO\naTkHxVkjLZB4gdKj/TrDy4svCQVEz5RGEnoEjuWOMCAafXOHIx2K/qmQaJiH\nhdWJ9TT+qhjkcRNSdWO6MmwCm7OMbXJsQSPCnrYbtpz3ez4m+wLb/tO3T7A2\nVMVgurtxphZSTQnhGdQN9fGYE1VhwGtxm/IPUrbdJxfrrGTo/3Dau3+Wq5JR\nPB/ZXpG3ISkfv2ljpIjmmLoQN4FotDB/DemEm+3DT+Y/ex/E4VJeWpPaewbU\nxQjo0NcYUIB88FYKgcrnuT3xvp6d4CRwpWlbkYzcZY7hqeysaH11g2DEzk9R\nsmju\r\n=q/UH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"92df7e98cd3b32e1221ca1157c20c055eba88404","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-92df7e-ky18ccg9_1641368466820_0.4252533924552735","host":"s3://npm-registry-packages"}},"2.2.0-feature-c3c2a9-ky18o7p5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-c3c2a9-ky18o7p5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-c3c2a9-ky18o7p5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"873824da48e02b5d602a328954b60a07a0d25771","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-c3c2a9-ky18o7p5.tgz","fileCount":960,"integrity":"sha512-pLB/ucSd+PAm8NNIkfqCUdn9W7hPWL5iuFrWn5CuOmSp0knkU/eAgWXNGAvbzl2nYgtKYXuSdkM01CGve3CUew==","signatures":[{"sig":"MEUCIQDETOjvbs2+QezDCGW8nS/lJbp2E2TD9oveXGdYKX2vAAIgTINKhohjSAkvVkKnc3ep8PqgJ2SzMDhK1Yrc1Zeg7w8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1U3YCRA9TVsSAnZWagAAcv0P/24BtLawZ5C+B5egqKV9\nFRXg3+yGf7TQMRqqtijI9/807jKeCoLXO+3UzX9hk5j32AmNiRVyjKo9ecuf\np+I8B6exqlLC+V8y9N+BDm7awk7z1rShVvpbNqvcbuRs+W9hqQs1aRxxGH4j\nKbukMsJ24DUqRABuSDUoLzV7x7CGiRf2CF1CDnKaG7uSagNjwmZEdef146Rn\nRkEn+n1+fBRDidW+a06H2brkDNsdxhygkvjXuSTUhL7G6NWdYXveQAIz2r1A\nT8s3m7iX1gnbHa2ZKyX1ULbsL74bP7aRUFBqb4Z6NEW5Wb1XkAKEerg/tU71\no2ff+RDToLc8qGDYLFCQggqoAKB3AzSbkliI5IbrVwnrthFfEDJeqHhPB9Dx\nbXeqsuj0NOnQiQ5szo8RD6EmyEyKX8/nnLYXMXqpZpbpbQB3XyKJdPRwS+Ci\n3YSTvlGAEA44DmpwiuTNEeOgQnPnE1S05cGd+gJR3TQG4l2/nC/fOJfTwLQ+\nJ/nx87WJCw+nThTy+CixJk7g0lfVYIa950iNOE1HCO/Z9vN6I2A459J2BZO2\npsvVs3xZWiyJD/URddiP7+pB7oJLQbdR7mw3EB3dazbkItFNClmTCkwJjFqj\nRkLa1oX9Q/nxp3+gcN1BDgv1b2MJK9hRGC7BzleTDZ9kBHtHMsoxTSJdRVDl\n0pIg\r\n=XstR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c3c2a9e3e0b3be8d11ca7a3c816a23da8df7e9fd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-c3c2a9-ky18o7p5_1641369048094_0.5197741974781445","host":"s3://npm-registry-packages"}},"2.2.0-feature-9cdc94-ky19fyk8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-9cdc94-ky19fyk8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-9cdc94-ky19fyk8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bb9dc37f48bc90f9827f4f6dec5fc2ff7bda4a72","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-9cdc94-ky19fyk8.tgz","fileCount":960,"integrity":"sha512-xgyoEyN3gY1jESb7QoM7ImYwJB1VK6JmyJprGdfZ3d/awaQdDC9ety+JOllUZTKcQVW5cGUHgq3faChXqhdDLA==","signatures":[{"sig":"MEQCIElv6txDAOaKyGSAKOjUCt+nRCjQzAJtlLnDGUJS1LVSAiBJTw8eJPTqE8TTNvvZIARZI5ugw+9k97i+CK2GCslUog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1VLSCRA9TVsSAnZWagAAtaQP+QCQDzgjQnQ1xWNYcWY8\n2vO/2lQzNvS0DT2Y3gf3305o/jGzvBd5sBP2+vEzNxOcQ9HQHWOgTVrkMLF8\ne52QnmavBgZ1XhOYIaxWbHr9qNk608zjRVcNgNc7LceTGqHL0ekisRItR0Aq\nkr8hbjGXJAUi1saDYlGuO8E/vTBc1J6KtujvE3x0nSCE85ZMes/+2G48Lvil\ndtHFhKwhx3XRbZ3OytDBp0jILnIebsmQFmCK5L/UKUDWGleTj0S+3zdeZKFy\nLGR/HFNvBXepQI/shTDMvpM5P9sLrKw3vd4z7wogwOUD+N2iwAuDfqDoes+r\nwzFQKwpJ3XfaAXHprUPlJASROh0k3nNjDrS9hBIe/VGt98fTcsrMO3qH36wy\nUohvpsfAArswy4HsDJiRJjAVWGV41s6zmMKIdU1HyamI+E6Yi8ILfb8ypYQG\nss/v2LmiodSFs2RyjRfRVK3HURGNznm2SN7Mm9he3ve4MAwpRDJQBlVxIeCy\nrgprl7JbfBZLULSuSgLzJb8dm2d9om00JiWGHcX1Kr4XVuWd0ue7RA0wr1k0\nQVJBb+LO6dI8RibyRE+dd06mK0/23bDUFdMuggcyCVX55ORkkc2/vlVJjA7I\nPx7cRi1Cp8Lkviazao2aIDSRJAhLKrAp631mnvcN+z8S/pwX9RPW88pe9CaV\n5JzD\r\n=2KJn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9cdc9475b28b1937c2491f6943e4ec151eaed513","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-9cdc94-ky19fyk8_1641370321914_0.3437039029994782","host":"s3://npm-registry-packages"}},"2.2.0-feature-e4de8d-ky1dymn4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-e4de8d-ky1dymn4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-e4de8d-ky1dymn4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"01d46c25446110038a3872337e210e75f209b079","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-e4de8d-ky1dymn4.tgz","fileCount":960,"integrity":"sha512-zLksvXi2Y3vzaqfEDZZwW+3hBRJieeeey95Cwu8uc8KRN/83ukS6OpHVuKVwhIVFrFHa6pm/IQ2nrKF+HIczdA==","signatures":[{"sig":"MEQCIB60QEwJGMYor9oInoB+jNwiwKohYVo+8HnkuhcFQbT5AiBG7a5jbVoSdMD9DFlThor+R8bL0cUhJgKiaEi8y7UZUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1XCGCRA9TVsSAnZWagAAxf4QAJwdoEMft98TM8NbW2+f\nezdgNnjjsBMRdjmiiRPGgJ8GjHH0ewcOM41fqYAMSoIchyLhd/OdQBpjauu1\nxAn+E6OfZfIOz7sp0kYg/oPcY3LMgeYa7VjxGxc27QJ6LOb3uMgyGnq2rCB6\n3hF53zHptZyheLz/FCvv3qndy3jTJDq9RJvDXNjeIi1DpRmjuDCPzGPew7Ur\nt8B1t1rLZM7kkZDWJlQke5Ek7qQi4BT8eFMeEomR+3qDcm2v5A0WGopUNIwT\ndpazHNbhwlkn7r5ydSGrWYKfRaonuAiPU6jTbYAV++bGiCtDkCLdduwW4geT\nBMeziNRws2e8Qg+Suydzpal58qMOb8aHeOMf+Nm2jLuaVFyxyVibF4tCYxkT\nv1m4xTNl/coV3uNSJtvfP/VHZTWiMY2kEA4ZkstnlJ4HiHXQGqZh3XMYiYgY\nh52Yl5KIzFJD9fp0Tfhwwki05YvdOGld2ho/4o1mpbqHUZyGOA8WyFinMUmo\nZ9/yWxzQCHT78Xs7KgFNwDbfo2tppB8rpW7crB7Xaf6U1JumvLxqOC7Z7Nz9\nwjlkWgTtUNrkKr6LCwEhCSiWJEFT9+w7+WBuJ203kPhzfuXLyDdZz/AdQ2vl\nyy8CyUzAhBf2bgmyiHu0MiPnHWCUrySINRhGCSX99J/ENbBLYCI2gZGvwN0J\nADzb\r\n=z8bX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e4de8d26f3860272de0faff033f0f9e567e9523c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-e4de8d-ky1dymn4_1641377925785_0.9605068145518936","host":"s3://npm-registry-packages"}},"2.2.0-feature-82ed75-ky1ijtx9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-82ed75-ky1ijtx9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-82ed75-ky1ijtx9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"983b339d7d4298fad4993c51c925976c1f5a767a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-82ed75-ky1ijtx9.tgz","fileCount":960,"integrity":"sha512-9H1shEnWLyTDhfo27S8RiU+Z73xVgK1aANbkQTMLCIVRaZErp2RFB3jbyLIVca6bWKQrZGwwO12lt1yerXuR1w==","signatures":[{"sig":"MEQCIHvPNp9B3r37dwj80R6inHGSJokW9vgJ8HDgf+GzXgGNAiBj1PhU0wSeMiHM/pjTpU7cXHwroA3K/BenCvquVglxUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1Y6eCRA9TVsSAnZWagAASMYQAId2GKjONYMfvsUYoPDW\n19W4D3QVW/L6hUgxlhkA85v0ysh0PqNz3ktUf5cyrHc4h1p3pKZDQkdw5yBR\neUO/GGkU4rGBwQn1ScxvyKdmbmegTiFC23RiQ8ijBkKZ+TRcWsMvvG9q/ZpD\nOmhGvEbYXAhWBjlQcRi99tGleAOpEnE/+weMGoLRfkxZLOxmYOoIyc/j0x9u\nI9EC4tnPBLuP9uETnQbdiUxjjqjDu39PYzNvecHIVG6oIHg3FGFruttfiPep\nXMmF0emkVDrSJjcMC/hDjoeUkJwOX060H+h+6J1cn6aZu5p+SF/f9tjTKNyv\nqFdsy1Srk6H2f7Qjs0H3Ix+XnWHRaezbOfN4rDCnDRi+7YwXi9d6IeOwhJx9\n58i7tjxaP/Ks6oBVyVkouJ82BrRCWXZlAeXnXO8F1/wdcH/nr9lD23qliH4B\n9dOPfl0A4Pb3Aw7+QIicj7rZxQai56yhohAaBkBAB9y/lbnsWEwbLLwMcWoo\nCKAXAbENEqJ5p67ny8s4UFKWqFCeGhbGY00TtLDrhbYPCIyFhPelcLRaj+pJ\n29xZYTHHo7YyTd9V8AKklo7nTibYZuBa1MTUiNurcZnJ5AOzED3WkhVnNk0o\nXFx4P2PAYXUq4YpKb/pKXjdPEEDHDNEiIgnIRSAMlV/cMh4cz6dSBx8Vr3U9\nHgPK\r\n=zYun\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"82ed758abe46a98f1bedc2f96b912be1bfbe761d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-82ed75-ky1ijtx9_1641385630221_0.8997159487348252","host":"s3://npm-registry-packages"}},"2.2.0-feature-0c37b3-ky1mdv3l":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-0c37b3-ky1mdv3l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-0c37b3-ky1mdv3l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f07dbb97c4a1bf063aa827fdb8ce8c0e24617ea0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-0c37b3-ky1mdv3l.tgz","fileCount":960,"integrity":"sha512-6ntmZSesppLGa+qj61M4DdwpWSspV/wabGGsk7sxes4uwCMoJXRT9JSod5V3D2RBqopW+nMKHvF6AzbGUaOx5A==","signatures":[{"sig":"MEUCIQCF53eqHxtqSEnVaWMkz9SoW4tQgGILVKiNcysIXkIfkAIgAwgdWXGndtCOlQKjII3cyIqE+VcnKSNg2M/EciorjoQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1ae0CRA9TVsSAnZWagAA/5cP/iFdcsFHMB8ErcOOuQ7p\n4JyNDsGamsLJDgQo9Lyf5M9LtgUEXmu66y2aPaWLHsIIIP7aRm4LsyNQKah0\n8EeLuZcEh1d6FW0Bbs79cowfo9n01myauILoqVm5mMfiRLGp4BbZE5b4hNjm\neOuasfg24etIgrM+X7yy9fmdllMREY2smF9ZndGhgOYvBIlO59ZpUYdFQXPi\nD/USqhuVc8Y8hsucB+5/lkcL1vqxpSaD7KN0uL03xHlOw62kACbflliNKayZ\nOT5dgCWJcv2/DWRo58NnN6QAy5Mphixj+Vmk1+MZeHfzPBIQcaUcko/Zvj2M\nm8eS5KX/WGj4SyQVj/hBnF56ibZdFhUF7jsKAyyWLGT/bYPNR3ANwhgG510O\nLrh4cFyYEDbntXfOYdJRp76roIPn4/peuElNh+RYP9iNGRlA++5LO62PMUNv\n1KhGoGCue+353YS4I86ai2+eOkVHD4Cjx1i/VbMrhRHIYUYCmjlVQT2v5Zkg\ncbIOtstsPIMXkfq+W9ta33Azwn6Y0C0p6NRQN+MWW3TMynX/Y4EO5DFfZVGc\n2ejXt4lIqZN1iApd/sU6Wx6yTttN2OTqqhYw/KzrDAPfPM4TwWEM7Fvn++yq\nXE2oZeynftcSq1oR8XATDEsikTqcribANNtdgxdRIp0GCfm39O5iYeX4UyYa\no9YI\r\n=1kyV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0c37b3a574dcbd2440fc924895c868ef431104e1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-0c37b3-ky1mdv3l_1641392052315_0.9961793095102882","host":"s3://npm-registry-packages"}},"2.2.0-feature-d5d04d-ky8gijdu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-d5d04d-ky8gijdu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-d5d04d-ky8gijdu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3c138c6b9b78659a95453a90aaf21b190653b3ca","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-d5d04d-ky8gijdu.tgz","fileCount":975,"integrity":"sha512-XHE3xto0FT/DYjxvg7/GE+lj49DtHpRWnRp8ocfLu57tFowTqKZ4t10G0A+dGkr0ui0ew4khJYijvNwQzc1h3g==","signatures":[{"sig":"MEUCIDbX/A2/9j/heZBJTH/hT+av3Fls/xK5EtjCf7oaD+d3AiEA++0+NKzbbIWVw1/soRIMktnNhxAXmP/olI6NfSNJ39A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2/aRCRA9TVsSAnZWagAAEYUQAJtuQK4YuUEEpQLNB79G\nnxEqZJyd9Eq8RW3M+nuPpyfSE/uGy+hOQ1vS01jps78137PcRIjtCU2te2mm\nB04Al1Q8tYZzDKwrmlUD6lsFSBwfaqoINat7sWt7mz8nGFA7oEsDz/befpZp\nZpor8H/Vvqq7aIg8qPftu41arqEBBdeJVrWH09XkMJ6IxLXC51hFry0zkRn3\njrfVO040NkoD+3aZZTMOnqdUSPQKbl5A1WUXKSDXxATu2348F5+C1jzstm9Q\nB9VIVtiuLvaqxZYomLigzky7T0dLab1criTO76tEUSjnpYWDIlBXxO7+Q4l0\n/gbIuHfEOmx8jwhRhumMzwrxOTAqXjFTUbCevLu+/cH0nwvy0jXZkg+b4CXP\n2zQ8dJbO9UzRxXWPBh0QMS+GHLmaj1abeqh+w/xlLwNnHr8zhFixdPRPhPIz\n3DFw4Mi92yAzQXT9bZo+/ujqAdzh1y+dBMSf53dW2GxcddKfFi6a/BlcDjdA\n/4Lxvcl6IrrkQHkQ62XYRGXGobFWD9bJc625bVy5mj7r3iGukequnhO0odtN\nP9vcdqVC0EHaT327Lh4xkN+oz5bqCw9W7A7NLKhD5fv9w65hjXODsmmxRVFr\niYwDynt/TGp05tGzE/DkuAgMjpDJg/HozAwhGu9Bxv5/pNaQAyJGIjrCQAm6\nwG/9\r\n=G9M6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d5d04d14b89c360da9d5b54a7bb3acdab9dfec78","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-d5d04d-ky8gijdu_1641805457352_0.9472461199280235","host":"s3://npm-registry-packages"}},"2.2.0-feature-4d0e2a-ky8hf9ts":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-4d0e2a-ky8hf9ts","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-4d0e2a-ky8hf9ts","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4ffa91d7501455f4444c99965f75629253329fac","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-4d0e2a-ky8hf9ts.tgz","fileCount":960,"integrity":"sha512-my3Jyz1RRf3U77EKBajE5cD6257J5NKtwUdIGYlKTLQg4FzEi/Ebm9Te6o5AwlzEk/FQazN4AesdcsZ5tcBU4A==","signatures":[{"sig":"MEYCIQDbgviBs6VpA4cI2egieRNzW5k3G8azqwwxFpBDNEsRegIhAK5vJpbb0H8nSSeis5tciXfrV1uJ8bfRO8AVbsEXunRu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2/yFCRA9TVsSAnZWagAAFQIP/33AQ83ExxnOYE8PDcmH\nCuKJMXQBGZ7n5zXY6r7y79aCC34okVmEriugz6VGlIobrBmvSU9m92ttMaDV\nZe6hP11s/iueWxFBHex8mUQCiYdNf5kM7ODJ+EmDxE2TxXTH6r8VKtPqliOv\npViIjbSI3yoFLG1na7mkbAP5iwVg8i+XKYV2+K31kke/AiZ6nF3znfAF4RQe\nmmnB5hx17rBsW7GtPpOW35oTc5sVdp2QUYzahEasNVwd423or0N3Z7nsXnTn\nxtI6eoB6Uqfznu/Tf4dplCQHFreJOHJ5URDVqPJBWek5Ji2XD5E0c/bzF4/O\nTsjFd0BcSvR0akIbOlrVPd94RQy22iKqF1On/6TFkAmsy4UP0OO5EQIz8Cdp\n4I5q5v0X+IsGQGi4HDQwmeGNyGCGlYt+s2DWqa43ghq7CsBd+QkOkoD9ybZC\nmizX0mWnMtjmxei90LUd+jvfldrPmP5dIXdcq1xVrb9Mw5oI80uIq2TI5OeF\nDxfq4QL5UJT0YeVG3FFOUI1mPN5jIz30a52POZcAwi9zE/rjZQWbeDiu2qHt\njKqqBRTC1wznIear8U87Phi4HUFoLhZPhAwWnt0/WlxTAjtdza1U5tkSeXo+\nTv4TjpFZ1F0autfE1Itx4RmlZotSLlrwR14W1rOpf3hruRIuws6TwQcFWr48\nsfHh\r\n=4prL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4d0e2a3c96572d8a801e5cf6c38b7c8a4cee68ca","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-4d0e2a-ky8hf9ts_1641806981114_0.774810884531137","host":"s3://npm-registry-packages"}},"2.2.0-feature-4c2b8f-ky8iodi8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-4c2b8f-ky8iodi8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-4c2b8f-ky8iodi8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"57fb35057cac1489e8a87efa951eb68c1e8d7428","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-4c2b8f-ky8iodi8.tgz","fileCount":960,"integrity":"sha512-2OQOx2Swu1gedoPJkdZRjKOoukQm6J1f2eqvVKlMR+ijXOv5p80Xswhiiz1xIC5sa95C4D0sLzeBZ5pvtZWXCg==","signatures":[{"sig":"MEYCIQCVrqslchVVczcuWvKFVaf+k3bjuJI7eJRfMJxHb2EuqgIhAMRO3XO5TUoxH8YkoAXJcRVKnBHMKF/GffvTILsZUBPO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3ATACRA9TVsSAnZWagAASS4P/jXIDvM02LW9SrnuJ9Jr\nIm/KbppeUHYIoTR9oFbhCunVdJ1Z0JcFYWpT55GxzBHhGBBWXo1jEsF/C81S\nQaMt+Wsujrbu1tDtfUNjy6A0qaraEDPEzcqTN4HkHPenO32MRAvkseVVqq9Z\naOsF58ki6zuo+r7BMWxAeRIZmAjqSXm3wsJVcnNnGEjmOiSJ2GKCcWEks9wV\nLtm7+iA8hYvGf7XahAk+BgQn84+QQWg5FTYOEkFyOPFqmmDYW4D9naMYB6mf\nUKcXWRZbwDDDA8BbhciEWHL7JGzTf2Ss7X6HZFySDDajA0aSEyClAQatUZ7+\n+BuP2K5a2HyzPIOnvp25roKeGyuG9zGJSizgrawyThlskNQQF7fR8MhdIdqf\n54Wz64TzSZeTlskFUvpN5jq/KkcCIHXkGpOMW7HrdvkyOKTmJj12PbxA+h1I\njTvAaKck/9WbHHjMhhpVV4itVYQpF+xd38WRUQg6tXpFF5VMvNkIlHI9fRlh\nwx78GK3KfaE6QYekLeBdFRYIfqMxBD0J1aPSFUW8URmoM5zJB016kkUBoHpu\nT4IkQeFwqtxqay7bMurXf69yvo98+RpzAw5JVWQbLc3twGAgDsX1E5e8Y5di\nRNCGX74ZXdzhqEz7ToLqZIYl1pIml1/Y2PSBJe9ODf7vXPAqFGPBHF7t+PWl\nJzr0\r\n=v7cg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4c2b8fb5b78e57ff61385e645539e7fb9e6386d8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-4c2b8f-ky8iodi8_1641809088028_0.11947160076913232","host":"s3://npm-registry-packages"}},"2.2.0-feature-3359af-ky9rold5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-3359af-ky9rold5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-3359af-ky9rold5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"48b5129729bbd58a5a09a6ff55f6d76b0a6e8caa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-3359af-ky9rold5.tgz","fileCount":960,"integrity":"sha512-yF1M6g6E1DW2gPWFXzqKcdxVv9axJXwwUEeOIn5LhmEzW/MIPqDCZpAAD/EGop185kFl7wxjSpeIM3dB3+0W4w==","signatures":[{"sig":"MEUCIQDbnrhUshgy1czpopQv8l9MIDTyuJkfwWtKzRhOLv3p/AIgd6n7AVAhPMccHXA/CqnMlotNmdnA691Flic8xOpjKXM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3SwJCRA9TVsSAnZWagAAFjkQAJpUp8E35bg+Pex/rtH0\n5Ji6POdRpIbdtJVVjIPfQjuf+qbuacfxZVp459tw7DLMaCMqAUoyp2Bd49OK\nHPRG1jIehVL68xoPKX+fCsDmsUMiGYBlNxBCionST2X7e5TdO3KXj9lPecLT\n7L2Ig3HE++DO8njHKQU8tXnsDJrOrf9pO0qa9CzuDrGigP0Q2EpxYiMyYpiC\nyeqm4d4eQQcMcyTwuTgQritAUtYDLn+OiKDr3Nj5aTabIIFRgXcU0nmWBb5w\nj+IVbQQA0jWPWvie86yeVQZOj7S1u677AZ1jeK8lsGFAotGbEN3VVafA7u/h\nL5qTW8WihawaCKvgkc939n1H0I0jVcbs2pohZNb7xzUwy/9YuG1ZA6sHGS6B\nxK9dwos5QP4iw37c9s+UAa3o1+eDo1L66CsuVdWHLTD6KIuFlKiZFq7lY1yn\ngU1Nh7Dvi22ChiVmv6hn+++yKgOJtjNHKbEz/Wqgx+OHIbYb9hbJMIopxCOo\naS2o1AriqVTt70noOe5K+Cf38ErrlV6l+g/ApUeQBUuAA775tBuJ2DIng+KB\nlRI4DVjlR9Haw4eMXEOODYEgh8uPOxNK2IWW/GR+hYwP3zZsMoT3oU9jJ3gI\ntWC9V2o0lao/MZAsqajFeMcUZ14YdGT60c7AocWSQ493fD/RxfowZScjyg6h\njTyu\r\n=3JbA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3359af11381d639bd8011ec9cdc632bf1d94349f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-3359af-ky9rold5_1641884681084_0.2909923908030385","host":"s3://npm-registry-packages"}},"2.2.0-feature-7bbd70-ky9xss5n":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-7bbd70-ky9xss5n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-7bbd70-ky9xss5n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c05d0b2c0c57beb76a2f7e968e124eff6a24d215","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-7bbd70-ky9xss5n.tgz","fileCount":960,"integrity":"sha512-5rpXzuh2Cm1/VeQPj67hdpkzKD0l9al5DehBzwaGNKqFkSKiWqqk9N7AiWO3uZMryPgt+14P3E1O+Ab7cwXm+A==","signatures":[{"sig":"MEYCIQC5OfWyXndMiyD011r+DKENpFyqHJv4C63Iazae4w+NxAIhAJtqGxnvPzBvmFYqIaeJke7BA6ilHIjzdz55Nvdt5zNn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3VQpCRA9TVsSAnZWagAA/s8P/3Q6S7tkOznmdtN2G1yx\n1YC5ZiqaQx7SeUDjxX0hmiPyrRYzq/KPRtVyCptK+kBU8FRjJHdkeMPvIjKx\nR9QztUEF5pqFtRYPfVlUCRve117A1OhFNDcSpiIU73nk3Y98YcAOyKusYyd1\nlh0fIfsWqIL4pNn62dq+qo4fYTxKzPK+xnq4oHOxWtSjwmW6MnqTSWa8xHHm\nSA4id4QjIsHo9AR1AFKv2LPM1PGz/jovOdNVnNxo/JsygXtpsY3ztCzJtxiR\ndryuSFIu5XOp3rfTvQefv3r3LQK6x43u5fMqgZXsbKTb+uQwSHsPy23RQ2zw\nnHZlUUOEOuzDbAOUdOPiWNvO14LXjMaLieUC5nuyLaF6qLSZDLoH7kmsZngA\njnfbJIiL9dmFdQoc+2S9JP2xew2vPUBQJGaTBqA4l0cG+pmXXwWxrABmGeXo\noQp8r0sIiPUbrmBjPy/Gcs/OEFTLIjlRFqsBeU7VboktLQW0nNOQTaySRFgh\niw6h5kDK5AotFXDhPuHG95HA1Np4gSwczB67FimeTp2jd7X0nWmUcT9pM9/U\nwFA87wQcvAv+A4wuEBs/biIfzqhik/dYNZ8H8D0sgTBxaqOD6sir2xXIOBiv\nAgkjii0QjAvOfdvjD1J7IXgsY7QidBnis9ntYLSsxvHgTJNk+kb4v4xWZxiT\nuJ60\r\n=WZRZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7bbd708a405b57bd75a7a86a5863592d5d4445ad","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-7bbd70-ky9xss5n_1641894953108_0.2742594386359052","host":"s3://npm-registry-packages"}},"2.2.0-feature-a1f965-kya8kctj":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-a1f965-kya8kctj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-a1f965-kya8kctj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a025a646d598b01b88b4bf44bdbaddaf8d654e58","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-a1f965-kya8kctj.tgz","fileCount":960,"integrity":"sha512-4CEIxlUGPJ6FqPxJC49Z1sZxjmPWoO9/bYArBgy+cImtvIDjp58JPdAEXTHoy0kfYllOJZUYW0QY26KoEspyJA==","signatures":[{"sig":"MEQCID9NT4mdxnB73w7c4iwLHlPkYU5/DWRUXMpQwyNPyIBVAiB84P6PSBwKXaY8sACoi8Ijdqhgjek7zBwgo9SJiqjVKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3ZrlCRA9TVsSAnZWagAAkmIP/jUp7TTw8mpExqDkP1q8\nfsvzTOSaCoJ4ZCdot/DZZ9bp/hamc4U8RMPf3zFWofKtE4ccwyIoE9w4DxBN\nflRyv2e1ltwOs9hl5xtcfzy/JMO8dO6ShWqgeKNQ0ZuLOJ4VcRfW4AAX0Gv3\ndaE/IUh6oHRMsoX0E3eDtkjH9Ue8j+sGiP6Jzs/fZSLoCTU94u1acxeqflAc\n8B41JQNnBP5n+14Sj5RaZJFewqacTnSuWWhZ4YaNmOP+x53QywNcxsCXmZxS\n85HcGX1jFtURjiCjJI40e12VUHqztj1zQp4zcORPqomhRMbcIaCKYs+QnVqj\nQsbkeBI8sWmvzCKO+tZTnO5lQBRuIjzeN6ZdBhDZNwiHs7hwEoi/Qw40p5ul\nSOueaUY+mTEoCGn/VJdeYKyr44OjuGL8JoyIlasnV3h6Tf4yEeR3V1+KdxeL\n251C6AuqfnPFjsUQVN46TrLqp0fbk4bS3g7cNZf8Sfae4/2fRCw5ZkLBva1z\n2AQsZIZr6cy5NYXiTf0oixhr/wxjb7Nelgv/TVAQiBQ+6QCTsgapKvnGMCVm\nznImvtyanmfMl3+5aj+Li9ZIzT1NIoe7R0XI//auWMGNVSQ15L02Lz9ybdnH\nH15XzSlmRtHO3U2naC3y0s/2vGRr8TVBvX/u2oFScu5mABHDjOY7Ae9NAeCT\n3pQs\r\n=Hi/V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a1f96544d7d62dba1bea470dbc272de34427c2c9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-a1f965-kya8kctj_1641913060761_0.9220243277518627","host":"s3://npm-registry-packages"}},"2.2.0-feature-effe40-kyb830yw":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-effe40-kyb830yw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-effe40-kyb830yw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a4ce620fd27755f3b9e271d295649b0e31dd0111","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-effe40-kyb830yw.tgz","fileCount":960,"integrity":"sha512-nvQjLgB03O0U7xnIk3GQnqt0SjSPSdNYvMYY8JEupJ1NawlyqV2wp99XuZvrhilQVaDCcR8SENAAdqoONS5ltg==","signatures":[{"sig":"MEUCIQCQiy1/pSNwTj1tSA8gpPMrEWpkBNxa4O69yVt+Yy5xaQIgRTuBkOmvsbXVCUzjgfmIGMbYZzYcEO49Bg4i32SQeiQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3oP0CRA9TVsSAnZWagAAsFMQAJB9OC4yHyp8bNBwHrxX\nI5loJ7PCa/TCdh21ll/Spm9/LSzvhSNTJhnsPvE75Tci+Oi/UgFniZIrW7+Q\n4DGlmQ4NjOoX8R1EPESthLQHqvVKngcNY0buFykG7y5aXQHKRcMr8YfWjxx5\njpH6vF3nZ598V/ZXz1S1GU2eGP3dLNuupZIxS1DUq1ZSDz9TWJc9OG4RI/N9\nVSW8Eb/CiWpKyilQbZb2W78wZO7KvjO/CMPoV/5aYbbpJe1XXsbAsPcCCyG0\nkO1GdUMSa+x03XZvDL04ocygxTJhz4RejhypEWNpeaAKQKV2KxqFoCsIwTFG\ngIaBMmxC5dnvWFGzz2MRyeXxNWNsWoQmKLXtsPJQ+TOc9AEC+v+/wcvr9a1o\n1h9Fpc656vYd5CArIqD3Xp9i/6d34e7PGD2xC3D8mVJpb95XbzeZulSKXOYQ\nKY+jAO0rRYWGatpbazx9yrIIsBXlYhiST/oYH57QJhHCq+EBhrzsGp62hdhG\nZppHnodPT4+jjmMmw5QktcJ2auMaQXCoJzP2EALENLNJ4tzyNivGWQBVj9Xr\nct4kCYXSRyaF9GBbOcqKH9PuRVX3sIjOB/r9DFYQEi5wJo7oEhPFmpR5Nsv5\n2ads51K0+zEcJhZvSNB9aGNENzOLsMSAheDcfnz+Ny2acFE1xP41E2jkOG4u\n61bJ\r\n=tGYq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"effe40e28617facd4f109bb8d1997e17e029600b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-effe40-kyb830yw_1641972723918_0.9864778696570242","host":"s3://npm-registry-packages"}},"2.2.0-feature-843942-kybfro39":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-843942-kybfro39","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-843942-kybfro39","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aa4853ef4de8a0ffe8085682131aecfdaf92fb1b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-843942-kybfro39.tgz","fileCount":960,"integrity":"sha512-Wn7uf9u6NSBoss3vSzgtwN9T8NsGk0h3e/zA1jPBPufE2iNQ9/QFmnhW/j0Pwa20S6RawyTejR+wMP9XpCqwjQ==","signatures":[{"sig":"MEQCID5pnwnYzq05CKq/zgSe6kYr+1sAgQiVEg5d2YCV4cvnAiBqWXcoGxsUqtmzx5R27REjnBo4DedUYdShPxhUGxNdFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3rZBCRA9TVsSAnZWagAALg4P/jPcQvKoFNWkQf6aUqbd\nE53HwrAKLf3/0EPypQxR0tKugEvEyB7wrlHdmDZ/kMRl0Ya5N8X8Bc3UyvJI\nOZNGMJ93xfK4oi2UKHktJKstlN7Go/3598r28mwYyb3LjBEcc6n9t2RksXAE\nArcbthfCtC8BDhStjlPXBvOoPSi1ONvuxQar3fMtZUEdvx6ctuN2sqPgfc6G\nZYhkZNhP3SqpXUbavfHbg0xnt4pgWB17RJQLueVWphzE9STXspYOyGjHAEBa\nIZv7JhdQ72PpvWfAEOxSOIG7/DqYFJR3wn3gFoKpNSTjPVhJ7o7UUXLsMaq7\nNIVy731SsaV4+w1cNg+Cthie+VjtlLJI4iTpV4PvLtd205X0M6cp5t74MU4X\nBjJRx3thUbt2D52gdXbsE6eIx3jAWOokNuM8fQ5Xv74h4+NAF6qdmUNAle+Y\n4A7ybQa2s8/dyfK1oWLRI+8yhxnD+Dv1+2zTJzHkwFPfNrImSzdVRDrHjTD0\nOvmu+nnPcxEyQ5S91rLYrTbcpIcQEROxj5+QY2HCcjHEG20KeCpln1x1JQP3\nIL6AtPQsa0I5IVPa1qtuUnlJpXtI8kBXMcu1QrqkB4DqVTHLCGwXOag53NmC\ncCdvYY7SY0EsecnAWUrpLqGss4TnhOBI5n4yZkeIkJCPK5I0EtnH1hm/zuld\nPV9E\r\n=pWK7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"843942f7582ab4ea1bc57a060daf34fe6b292a6a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-843942-kybfro39_1641985601716_0.9471958170732164","host":"s3://npm-registry-packages"}},"2.2.0-feature-1ce036-kybfyfad":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-1ce036-kybfyfad","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-1ce036-kybfyfad","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"769aeea58d4d24f0dc44831dc356d9a751b2d08d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-1ce036-kybfyfad.tgz","fileCount":960,"integrity":"sha512-TR6nr+qiewva1xxKL9l9xjrCfidG3hiu6D/WXVRFFI+fSIhTXNuo42AKm8fq80P4vDBPsH3WfZWUDSLZrnhUzA==","signatures":[{"sig":"MEMCH3ka5UJ8XRXoMeAAC6o3EAmNAhqbLW4FVKFVeobEx/oCIAVuSEAmCc9U8fIYPrlK6gJLidMwEH4ZyTrlYLqnfbFq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3reUCRA9TVsSAnZWagAAg98P/0RvD2TXBgm+D2EmLMjs\njM0KXcBWtQnP4PiaDpch6Ay/Qonk2jL9Tpux1ATG6WjTHtb5Tp2nGqWMBz45\nx0ITMcs6ocykxKkJQUSP1tucX1rIibDWTuqKyQ/HuJrwbvqLCyvlv4e1uh3c\neOpgvwU1mWZG1NY5d5x+18EaQfPSRcVhEbXqbZRfH78FgQrhTtI5v9/jOX3R\nXW3rw4m4iHoT6HB80jctKDxlZhnnHET6TQLhBw3f5zfxxCea2R6T8G1pt4FV\nrnR+shn8yNYebcIiEJmdhGvWbD1M1nBXKL4X4U4J7DtxsFv5dLackMx8+50H\nIBcFtjdW/jL6k0JdWn1FqnJVzPKvbjdu5+qzgx8XfUVHBdv8FtffZ7ROGCyr\nkbcIMbrxNJo0id2KoYz3h+xm2iYHXp3DFBso9q4SLSCr0o2upE1yWTJtwga8\n08AMz90zB879FyuSbjftVgRQuzOcczx/2djUyDaaH9vbFxdAcjKrYRGGe6kS\nkKFQCsiIGYFbktnAUPceGW/ZJ/PDkBT/XuTEMGdbHVsI7B5fpi9fpsnuxxat\nUY0XCkpiUI0r09mRxLS3jmrXsTF2otiCi4vqbg66/hN2Y6MIwZpUP5yxYVqm\nQs0pPG4+4uIZym9sJdqbs/cupAH1BD1H/GGkYJjdeE+qsUpCLMhX9nl/hJIr\nRWj4\r\n=JSMt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1ce03644f2e5ecad61b40edd2625a1230d942d9f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-1ce036-kybfyfad_1641985940122_0.9965618724515597","host":"s3://npm-registry-packages"}},"2.2.0-feature-b6553c-kybgk14n":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-b6553c-kybgk14n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-b6553c-kybgk14n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ab30b87e0110aaad139d3db29189bde46c81116d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-b6553c-kybgk14n.tgz","fileCount":960,"integrity":"sha512-axmbbclPVaJOT2mTQmeXNiTq2j9aNbUzzekWhGhDH5cLOVHMccX+zIRU6ae6E/gOMqVFQWLm/8pFLZDc7YteTw==","signatures":[{"sig":"MEYCIQCM5b7WfGCmNcNx2RRl8wGHs0dlNPwWXUM4Plk6n39AsQIhALmRVh4AJsNSMpTYwknWMi8UfxRjEbwnG/tsvpp25Jg6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641497,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3rtoCRA9TVsSAnZWagAA66EQAI0iN4PVnqxBOcmy1IO0\nxnIsZmbZlKzT05wATWOxBwhCsHd7Qe9Frx2t67hT9POPvY6PAReSeLqc9EbC\nJeax6w3Ilcit5lGn325r8tvubH2XDFpRPMSow5FVJZCzmWbItWL4FGksLaSS\n7z6fkZ8xHfyAS4hvAEhNzptzH4SNQDYODzdBfOd6vugEIhYqFeCvl0A/JVfM\nCMkw0OzjQeXabeVbXIOpXxKjkQEaDMmRtL3KqPH+6GFjkd9cvBhTD9+SWkS3\nXYCOofWmo/mCaHJX4wZhAHF6vhAK2gw8P2Ba6oYDOZ15eBAotrNHgubnV/qE\nQBvkclB+CYPqKBYVI+0BPv71g4bkWsQ2qg0ZNsCVavk9uyr90aAhThP56zfg\n7UdE2Bs33ZeFF0fmFl0Q39SUEHzVPkFp/8dDskNFgdxOJtbqXgg+pYOhXAH/\n1n0/lGgd62d7d9KW1ZC/o31H6uY9+iya5J0dR2+48TXoZStfQgR9AMFykIWE\nR2fCYfUkwXqeh0x1LOyDsvrRcXSWaXG+aQj5xQTcslNIWrKwZjiJ0zb+I3oc\nSexQlKhUuCOzbBOFVpipTXCY0OmIrgd+YVGOf9B5AzY+f17ombfNPWEpjQfd\nvaKof4Xfv4V2x0Q1zQ5dXmhAHyhUygcHtX/fynnx4s0OxAp5B9gANKSPkLZX\nBTWP\r\n=zbr1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b6553c4cf0cba6253224abc9259102cbaf2c7082","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-b6553c-kybgk14n_1641986920475_0.2786768219965481","host":"s3://npm-registry-packages"}},"2.2.0-feature-f2c1d1-kybhrxuf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-f2c1d1-kybhrxuf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-f2c1d1-kybhrxuf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"095914323aae26fa8add7ceb675de5601e8393fc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-f2c1d1-kybhrxuf.tgz","fileCount":960,"integrity":"sha512-G9cqZo9zUNDoj7U3RKtUsA0ArcroaU+l6Vec95V9sj2oJyBi3gLm/jucPKO/8/cuLdVnTqYhBBVIrfOBN8z34g==","signatures":[{"sig":"MEQCICAg/exO/AxBH8KAXAuDjZprgoKxJkeGysfJhfrKIa5vAiAPmfBKb4FzePmCjlS6KU1s1Nnm32kMAGtxDCJzGjBkWQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3sOHCRA9TVsSAnZWagAAdi8P/1q6s3ZclCySK93QCmNp\nTADLmB89u6bfOdh0ip2jaZjoknkIbCyRLgbtzdsQbaHVvw06vsIAkZ15RsWc\nOuJ5CwxPuHd9aK8HZm4B20Bb1DwQUwM0EeVfksLC6MuCpDr9MccrPAIsP7hj\nUU+0NmYNKBaXiVTTgNbsDBroZNVgZKypLah+CZhjXoKLX4/ry6L162srkJDQ\nueos5ye6s4A4J35lLqa8wCAmdRIn7lRLm8lT41qWLWcPF3ZFI48MmsDm0zqL\nqljmzxrctiZfiybmD0Ak0E5TZuP3Q2f+gh2POZTcbWpJzM1Omf4A37OtifjJ\nHlzUX2ZjX+RVdYyDIOLZV3mzEC0LtCr6+Y0KscGb6RgXmkPmKkknMN0YEVDJ\nL2rZ7jxq+vMFOszbYats1u2GOH7OphxYbmfvbCtJd5r+X1s7czOYWNOTj6Z9\nndjGJeI+wORt2B7dON7INiZb+m+20mnW0TNFeMEu3kYqppOpMz+oOuC93IpC\nnTc9m8OWsqXBBbTETD/SRC3+ydsQbARXXF+3hH3U7xql9LF7osMg3wsDPj+j\nkVcABrnUnBHQTOeLklGlFxtFX7yHJjbjnK1bKGRFvALJ3FZ4YTwLr0EwNX/k\nRl/RdXyE959dM0y2Dj6G0NORgMK7/EMp4zT9+/yVHKobQgSLdrTmm2V7xUls\n/SEB\r\n=tOCH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f2c1d10de61b8e669ee2e23a7c69dd1759347e5d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-f2c1d1-kybhrxuf_1641988998973_0.1678218175129016","host":"s3://npm-registry-packages"}},"2.2.0-feature-c8bfc1-kybiw9fw":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-c8bfc1-kybiw9fw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-c8bfc1-kybiw9fw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0c30cc4d901a37e2f291fdadb8d782631ee30a21","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-c8bfc1-kybiw9fw.tgz","fileCount":960,"integrity":"sha512-k+6hWYg04JTjF0hlhijAZKOBkfJ05bQJZ7IfOtV/SVUgd338I7+qgbfaG0AS0KVHKaICYRUfARC0SJZzMd5ErA==","signatures":[{"sig":"MEUCIArERH8/6jLCCKMJs0ae6C4GnhuQ1aa967NXA6lIbT8QAiEA6GKHMxl3Vuv2Ruvf7cwMTAEr0gQVvoS0n2k6vLxT8fM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3srKCRA9TVsSAnZWagAAPFsQAJaHX+gjxs/ddZ0qJpD8\n3TD4IcICANRoABvnaszozrlAtOJEk9huig5xTbIUd3wBSW6781X7z4AaWFPs\ngyOEA8Hg/nnqJilm8/btejDH74PrfEJ/VK1asE4rCzPvLAxnBYdNVFPnXpRE\nrXiw1XwDsrkrjZ6dqWW4BLeSlnTocmUTnXBkI2X861BrohvvWAGvlnhNFMnv\nbZ4kio5rM3YWZ4uk9e9tmBskksH02lpNsQHS6bUYDOOaevotWInTuTSNUdV5\nN9d2H2Y+brG2j6BseGkPmkfuW3Hq/KvoVw96+a5hgsMaslB5BE6u4VZM+gCi\n1Z1a1ymcrbju0hTyvOcsZ/07YZPQcJ29NUZEYPhRz2ZySkiiDAIvgioFh3vZ\ngNuQWEYnlV8GMmdUuH/roSPfiMOmLQl/GbKMXZKRZMCiGoh5YP+X83Yshj8C\noXrLq3QtlpX1XZ51GvmJkgVQaQomzoqrQW/eVJw3Goh91nY5onsD0T3o5N2F\nTLqNLanUnwWyCyGYg9O/nw6J/05OgjeNNaMBN0tToFuL8MNWX7qbZh8iEwfQ\nh8Xr/mEPq7bvDkv5PdL56VaS2JgDbi1fcZSLzmjs/nt54rgVLG9DqCGHJKtd\nFnJPWQm6ug240cSlJTzXCjm688X2kXv1GUQnP3YORxCVTA2Ka4+lA6/kIpXg\nxTUy\r\n=4FSY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c8bfc1dd21ca77f46e7058aa23dc598c7fa5d180","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-c8bfc1-kybiw9fw_1641990858703_0.333488189642446","host":"s3://npm-registry-packages"}},"2.3.0-feature-6eefaa-kybo391p":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-6eefaa-kybo391p","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-6eefaa-kybo391p","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4f138e0e08318fd597657362da76b4b565c3880c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-6eefaa-kybo391p.tgz","fileCount":960,"integrity":"sha512-UPr41Y+Iu5hZCsn0eTVGk1ho/m0YLsYgsAGwKUXIqJOYF3jpIvSiMDUB9clzfaW1mCIY+nj1JCKOEv/23R7j5Q==","signatures":[{"sig":"MEUCIQDyuCkhfgjZviNeBBTKlXLu5HKi7MZOHYHcMSo7QWll/AIgWztauONIbbcIWX/+GKnoz8yB1gwV5eGVjsFUBQnA7J0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3uztCRA9TVsSAnZWagAArGMP/1NSRVe4ebCdTHtuDCXP\nEBF38kYwQQqI1pjZeyzYhwIgq0Jk3rANTlUzeg0nd7WyUZwKRtgiXBA+Filv\n0BJxGEBrj42yWl8IDEMpyXFNLQi4chBpkk11jDmVnquzREwedzbH1G1j2lNc\nV5VyYqaiFdKXc0IxSsC4LkcmkSwTfAE/37si0QzZKGs3EH9nLKdB3y8cAWiC\nIxJhi8snfowBQnKRJhJivpfyiru72q0XUGabexJJzCfndHJV/19NeRM1Tjzx\nvfTLdMRwAKUZD5mfnjnR+yagz+hDyeWQQqD/1yZfFTlPvNL9ScczV2tCFoYT\nbWjY8RGvVjQ+arDEPUsCsvcq5jBAWqxL5rBfCh1QOBss5FmeNd69NTCbOKfI\n+s91+43nZMyvvoe16btgxCRtalb3wmiVBR9arqFzDFrdWoPKIAdEsDHZmYXA\n47wi693uARPenmpZDavDdjFiCNLT7gJ44cMVJRh576vu3VROP5WjanADQArj\nzRqErMA88w1A+JcRxREghalz7kA3RByRVzOd94UygLMundnSTTXvtq840Gcx\n+vSYJGX/THK8SszKOXDNB19P7cAB1x/UBPVypN6k+9xrmsIsRVXWl7eqTqgP\nC7Tn3CSijc2/Or2ujNVutCV7c3Z3xx1EpNjBFIWl+eDkQArR+uR0L6w81E5K\n1IQW\r\n=0XT8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6eefaa57b835c8af0bd631c75eb0fb9c77429b8c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-6eefaa-kybo391p_1641999597638_0.42058631467493823","host":"s3://npm-registry-packages"}},"2.3.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b9afed75ab7f57a985ca85cff9754291e3c25ff4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.1.tgz","fileCount":960,"integrity":"sha512-cdXKT7NMqfbfqTAgFY0gXBbuWof1w36UaMzfxAjGa1WjtZ21XWWN83wK4tw69uq9JMlVGSbev4XPo0vox0nBpw==","signatures":[{"sig":"MEQCIC9HtoWtNCRBkHOwnWwo7cfTe4DXVcO87sBreIsViBpQAiATnYEcTYpfJ40eDRkDTkOCbdYaBabNHpkLwEOI+8YZQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3u+LCRA9TVsSAnZWagAA+acP/0JiD93k0SBIf0npyLGJ\ngJErLDJN90EF+Dbs00uJkO0H+roNaQckbupyax09ZIhEMBio8HmEp7VOeDEc\n0TnUKbi7EMY5Zvnu4lMvA6d7AnzUJkGxijsaru7QM+f5MwC3Jku3OzIsDFMO\nSllc0fp/l9fpTO5nT7RYc+XsuXmAuOd/cqzGZFsCxwlw23UVSPjuXEBOLJEr\nkKpaC7NrltZoUc+I5CHIA0a0D1rkavzg2cfo+d4ky1XKH4wqfQox7vWqMDhO\nS10lfXfGxpzBni8ZYrlq8AL5WOPFppObYPFg+GQ1dlaBlo/3X0pS80dyC6Bh\nbD0wVVGnLSesp1xBLiW9uVQBEIS0H/MsGlTmHtKrmfdmxL4REwKdGSs4Fz5S\ntkJcMccc6PGRge+sjrdt7/qpQjKMgDzyF2xl0ScRk+r9xG4qH+2k8/IQGPnx\nw06C3sXa61AdjONKdbSJWE+VlVCKQlUrhlS4CLibsirO9FZlNCpLXnhVWiut\nztZerWl16nXzwiSFzVFobsyh3+d1cXD1c5WlVphzgEm/H0gLx5s9zG9hi/WL\nRI9olobYttIcm5A/O+rXLtmemzkh27ABUeizpaji7F7zZV+vs67yIT/HjZMQ\nksPd3k221LF3I5vBrC02Pyff7GalWMDF2dWUdXnTrA7ea01fyNcsRLcIMwNG\niB3P\r\n=nuJ1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1297f4fc07910af64780f7379d04812c4e5df053","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.1_1642000266708_0.4835616797310731","host":"s3://npm-registry-packages"}},"2.3.0-feature-37b174-kybsayw8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-37b174-kybsayw8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-37b174-kybsayw8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"06d92f71e213ff7bd99ad2a2e1020caa23afae0d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-37b174-kybsayw8.tgz","fileCount":960,"integrity":"sha512-xB0vKMR9Sa+gDyBVPTCSqjK4wgGJ6ZPeAVO1/eiFcv3kgfx2YuuzfhK0lT1weElhcAyXo7xST5q/58A6N1+d4w==","signatures":[{"sig":"MEQCIAoG1d3QPF2TG0m07QOInYQHkIjjc7nHvQ6yoBy8VVaCAiBvDARRSMhVH3FaWOhwr/DUIK5X/z1px80txDNFhRY5aA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1647538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3wijCRA9TVsSAnZWagAAOVUP/2zol0i82JVG7QKZKIy3\n8+ksZw7bPAdNxyML6/y6FO4qNe0w2okVfy8vVcHG8mu8/ndLfQpg0+UtE0do\nF700StvFV/Hr6zFNBTNiV5b8WDKcdbTFfZjZyitqQS3MtOQUgDlSxfJfxBoz\nmv6q4fXHQBqOV3BhxgPqlGsJOW66mqfGwUPhQ0IH6PDj6eASHnTAsZ13J8Go\nMtz+Mv1TfEBgetKWK+Shqwin2PnJW2r2wAKn/Vb6q6VP1tSKzLT2zx1vhZTa\ng7s+qghFXF9IV4pcw+bsfFrmh0rYYb+YTHMJGMNDa1C7YENDUCphPIWp8pWM\n6wONqDdmHT46dtjXwHLMNiCZ+wUKMirRFTeGcZCyidztBBuIipuc55LNp7S4\nMovwN8Iu9FZAx4fZ6Hl17QkCv4f3q7jbrnZM14lOIiG8+mynGcvKj6Lme+Lh\nV2cQPl/FTJxlN6aiMK2v1tcDSTvQLhd9v9G47fHj2mg0rOv4c0Mruezhb/Ts\nnzasoyp5TghD+qsWd2t/2TReMwjcu31dUahjC6fabvtHvTNrC7gFtCgCUx+d\n5t3R/Zx+h9O6nxsvBn7tMKqclHe6CmTXdyPWCBo1qVNoqwf4IiMJuXKbhh6C\nl6bsAKpm3cZwoX9cEl45klN7AXqCdWMER2643rpnjvvrZyUUUNJb3mWGTNHA\n6wEg\r\n=r2FG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"37b174842d8d36105b373cc9701bc0427c462eda","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-37b174-kybsayw8_1642006691722_0.3138139560996067","host":"s3://npm-registry-packages"}},"2.2.0-feature-bf0804-kybx95ak":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-bf0804-kybx95ak","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-bf0804-kybx95ak","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"16a9d2b0cec156e0404908de27029e4057750be0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-bf0804-kybx95ak.tgz","fileCount":960,"integrity":"sha512-pA2/FP+3z0Eb0CvB7eSSh1mT3SbDEPxANId1x3MDW8DNMMITZTCy8ieI1H77k74acr3nIiWaTlCenWdxlwXsEQ==","signatures":[{"sig":"MEUCIC3VwebYrLXfUhCxYPCEM2WcSzf6sbQPLYOKtFD7qw05AiEA9SiTmzsYa1w3YTxGxP+To2yL0lWbwtEbCTYOh4QYEwE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3yj8CRA9TVsSAnZWagAAjaAQAImfbG2MvGNVgdCIdYF8\ndZ8/3nIxiWLY7QIifsdCQNlsQOsAg2F5p+uMG7quZSE8x+lsUAd2gftcFpkQ\nuROr5cob1iATg9xF+/X58jjJoZW7lqiFEbedKQ+7hGUTg6xajwmkYFHPHXR7\nW5REM6ZlgrmIsN6wVOaXS0N6gV+SAC72v9r+ysWjW31KuMVEjTz7ghTfdk/l\nqh5LBE9f+Pk9KqeVyBwBYa0U/tzsu5otboMymk2bcyxIQV26n8UrNTrf9VD2\n+EiawVi9mHT6IKsVT4JjvfgvcVHqgiyTsW8dvlUVvsq/b9umzCAftK1L8AWW\nsGXzzXPl1ScMAkyQ4JDo7chM9/m8AmlPO9RqdgF1/JTf+CKB620yDrSW510X\nWddKEILwKw01BMdTR+DtRDpdeKw1sjnNMPeaNE0PmGOplpc5agZR/dAzqSHo\nQTtPgnOYY9Nss+jj+YL3eEiBw7cBAC+JvYOH2IzNWGdjqcXJGEntKEWw7zxm\nUbiZ6UTTQlXmamnTEVuAZOkP0DHOFfIJeHiWmsSQSi0q1+enmhKNQg9ci0Qx\nlUgj73Q+OI4PoGDl5w1OlTnNxtivKQNoDoYy/4FUouka0kEPX4mP4Wc7X+9l\nQjhqCsLIw5HEINA8voL9Nm0L1ueH5yvezgo7my8EyyBGX/udQDBcFO2QTaUP\n5CoH\r\n=VJWs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bf080497e3de35971a5ee921dda3494ae38f1965","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-bf0804-kybx95ak_1642014971905_0.011059188728530067","host":"s3://npm-registry-packages"}},"2.2.0-feature-e05a3b-kybxmbyx":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-e05a3b-kybxmbyx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-e05a3b-kybxmbyx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"83aa7115f1b0624583568aa255656272a3054ebc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-e05a3b-kybxmbyx.tgz","fileCount":960,"integrity":"sha512-tHFjCqnGj4cbF2PuOvSQXWkb4Cp9nK4vkp+d+pQdQDiniXfzC5LbJn7wEnV2tiUnr0pJMHkC1fMsOJEoD9GhZg==","signatures":[{"sig":"MEUCIQCLSE2a4j/Aj6K2ktQVH7fmHllJN3Bfjrlx9zXWTyFjEQIgEEGL5G6o5nOpCbbt2JbxTdjclHcWn7aNiwfVZfSMrtI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1640149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3ytkCRA9TVsSAnZWagAAjZkP/3PUj6eauiJ4KINJno67\nVH6d5NGCnxMLPNSkxCOc63yZM5qQ0O2XVoQPavjs1WfY6u2f16z7fzl0vL1u\nWl2hFr2hDMR2OYRbCmdtSWbI06LDk8NKQiu9h3snm4fbiK75LtIMjXUWLLyx\nwC/32Y+pOBJ27kLxwUcMqzypeyEPpC+yNq56u3ZLyKrtxUbjjriOX9JGojGb\nQgL8jeI1wrgADgT5mmdDRQS8v2SsH8LFvaPWZliOWLsoQbuqsNO4VdW6Ln2e\nPvPe4bScxFvhD5iMfTrOzfHmAkjGVjIG4pqBa6EPWHphwfqd3eACF88nnEpA\nwUBZU7l5t2By4NK+EbY8+439zFylTwL/7s54s9D7hMi6hJ1Xk51AkK5ULVwM\nw+4U0Gp30A2RTGfak5L5Ec2/hU2iuzhiUqOpC9FHg46msGYH2NE4NeaM7HLE\n3alYGhyR+WOzel5w8K9Z0AU+BxShlikTMggztSAzi/1JCRmApnVrSbz5kKEI\noR1OF84hr+9tztZ0wti+w7idzuPVj9qngclDdaRwULnPJAi7bnVUIe6FAzGX\n53zP3GuCbSMzIj4fnCtLyOY3RWG1l/fV/+VzJqx7WUVwbT2koOkbCyhulzZQ\n3XdGQikCmfS5HayQWmSxRW+t7NPQ3Tq141JVVrdR1LGoY7C+Nb4iuNo2eSuB\nhoTQ\r\n=ad/J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e05a3bb10f011d8fc8c5576fdb8f03982aec38d4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-e05a3b-kybxmbyx_1642015588429_0.8496671159351274","host":"s3://npm-registry-packages"}},"2.3.0-feature-8bbd3c-kycr28mk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-8bbd3c-kycr28mk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-8bbd3c-kycr28mk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"03407ff662676916e3396d340714a020927362b6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-8bbd3c-kycr28mk.tgz","fileCount":960,"integrity":"sha512-kCFfRpNX5Qxsk8RE4hYyr6v1qb0lcoZt37ifyEWT+nMFhhgu3S75CKc5ZSU+ixw9xwQm0sFfMNxA8A1VtJHTBA==","signatures":[{"sig":"MEUCIDPZi8mdiAXRXvVaw+7taAyawal0nDtWcOUvFNQa15V/AiEA6fYBK8bFiGrOWdD8+0LDfoqbXUVAKJiKHuzr2eBIIzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3+yfCRA9TVsSAnZWagAATJAP/jr6OPc8tzhO1JwIdiKi\nHZpRXVDmAhXqZJq02OvhItUXYuN33t9USGQFmfEXGMCJONVzMN7PXG621LlC\n6PyDEYx/yCWqkq3qTxCSamcyXPYAKJutAuiH689FyljFJZfdN9lbwesEPmqk\nR77OKoIo26Dz7HSB0MiTbxAK7VjwfWevQi8JrGuj9fl4n/NnpXYdOdQKbQCW\nAH7JvrRBOguxwr/e+fGYxvZa2+HywNq3B1jCUSxxbUUMlArx6tqAc2KBtHkb\nxVdQ9Q++fE2SI7T9FXJTnMtwAO9B0L2RDDpnpxQ3CtAVY0IDP61dycSrRde9\nMwrlVJS+jCAuHaEsBqfGdr70rfGilQvA7nBVhPOuKgHs0F+/y6OdLSebe0z7\npFBYfaKluV4U2yvuJBmFNcRRqOIohj4IzOx5oZ89EvZRB3l86JY+bWmIXPsj\nBz93+63lcGltvUfpb6bBq0WaPmlXc3THTv9A8HECmO5X7pPqlTxcow8MAXsh\nBjUHdulJF0P93IVvqtfmImEMnp1wVnSeGX0dPglB4rPrbth2PCeyFJs7hBkT\n/pNdpp7/IzKJYnu7fK/GhvfYyOHiQqImt3B5fDzF2fmHTJBWbxtp/jYjHOqp\nOPlQxn6nt0FklI7y5n55nvMR5J//x0aMoVBPgfGVgvakaopdgdX9HtPgo4tP\ni0du\r\n=RSHu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8bbd3c9f870989d705b4fe97f00461b8964f3781","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-8bbd3c-kycr28mk_1642065055413_0.8792657171527425","host":"s3://npm-registry-packages"}},"2.3.0-feature-424bf4-kycriwdj":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-424bf4-kycriwdj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-424bf4-kycriwdj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6f2f1eb03ecee00068354352f6f674e9b74d1bb3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-424bf4-kycriwdj.tgz","fileCount":960,"integrity":"sha512-wRQWZXMsbiX8sHgy33LTMMvDRmVWgsMUgleVZLZNINNm9PfTM4GWFn+qgXXceT8gE0UPcigXpqIWZNbS9oOV6w==","signatures":[{"sig":"MEUCICD69bN1TE/GnMvx2J6M5kXBAPuJlj2bgB25KQLoVpg8AiEA2Dr3WVgGTBaBVJZm2+C3FLslvYaYPyHUuGxL1l9zgWA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3++UCRA9TVsSAnZWagAASxQP/2d5hX5d7/tGJlALHwGO\n3+u6wQzz5BePrmZoYirL1+H9MtudVwrFj+LAAAyholxzpp+Vb8Yo+SLrn0B1\n5bTPHEAjLp3pzG7mNHCnUO774UWhbTjM+A6xfZrVxLjo8SNdbv3IqUR7JUg7\nZ0Fiuzcy8QWDATxLmqH3RJgkPnsfU8REy75c44eqdLZwsY3AwiOrggzSyubW\n4md7j3r0wIFheELLmdk/hldao7i1Xz6ZAsberdKFNbABwjSRAurXZgiseVxs\n7lwiC9Epau0AlUx7RPPNN0hr5Cz7pCWEz68Y2/eyfSpTwM6CkvcrbfC3Cm7S\nngw1KbmbBDsog6bsbBQYAnjMNmtqaoqQvCzMI9FkvcfsEnk/ykYlDnRQdMPD\nMB4DaNinZTSejdvxuMiI7DrUm5SCRLIao40O/JI2ZvP1BRUaKICp/8OWzqyR\nBwInSksLoquEhmqHRrHnEQhfZhZW2fO2EZcf3zL1yyQKtBNfQsH9b2vxhNOF\nQwIIMJAT6XZTAFZIlPFW4FUDbFpiVNlm1Wh0eUEfg+P+NgVNjCLhIdPJEhJq\nngD4uzyPd1yiwCVb/wqiK0X7m/IM7i1vtjdpUBzRgOnMU7ypfm51zJ//KEkP\nkMnjg8XatuTFaGbvwIxSq1LbSeu0bEbjlbZquAn0p0yX702WM0RDt47wpG8s\nuWQs\r\n=KdEY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"424bf4c0f7b7919e6a083528e8ec845fbe0fd31a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-424bf4-kycriwdj_1642065811614_0.7000000684631509","host":"s3://npm-registry-packages"}},"2.2.0-betafix-fb6ab8-kyd0xqg2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-betafix-fb6ab8-kyd0xqg2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-betafix-fb6ab8-kyd0xqg2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"28aa0c4df3154c110ef3183dd0c28d0d131ef28b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-betafix-fb6ab8-kyd0xqg2.tgz","fileCount":965,"integrity":"sha512-sG9MK8XdaVJmxEDuBoD8m0DmQ6B1/V9r5gnCQJ8C9sALeL4iWGxp8vz0uh2uDpVPUoKgK3RUoaYf18U2D4WMaQ==","signatures":[{"sig":"MEUCIHK0ptgseQcXLWZrDrO4B9dHKoqGabl3p535DhHHQRRpAiEAyBYWIXN+Hxe0W+LpPqCSVrKoq5IziMZK04nUUp7CY6I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636865,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4C1XCRA9TVsSAnZWagAA0PIP/j7qqHvxH8F/E9aBKwb2\nyM9/TYxho/dw/Eyx+/IMq2Yx9Ji9VGhOqpDtCQykwWzi/fs38mXvqrs+tG2H\nZ1r2KvsgWkiLFny/p2VOjVvmqAn86Beda5E3Mh6TQfpvX9tJ/0ZFimgvSuO5\neWs2ozSg/jsxBdJKTYXS5z8agHpxSGmPvDNI0uvoplJNKro6vzHEZ63Z5wNm\n1TyNIKMhLeeVomtKRK6ki6ZJ6lq7iQk1WFhM/XVeNcCviFzMXhRKds9UYA9J\no1xNS9Ag++pSD9Wjd4OAZru5SXeG9DcIQOkw+kgzK2AlTf4La82so0lCMFRD\nvPRfjuouxgRlDT+yyo5vdiRkYAiljvEe8bGHvoAK9ozi94eyUVAckTVelwzF\nHUZYRv3424i7JWyluPDw3mTzj1Nz8Gn4h9C+nfjdgEOmGfjGebK98X39Cwj9\nuVrObkkY/zcTnIDAaZuuK8fz/dns1MK+xuFZXbEXravO6W+67gbUXOo+Rs0T\nm6AZTsl1mJ7erAgBZ4cKlErRwC9ZqKUlIAuNFasQh9Hq2NlKK/5diMj1FgHE\ntUCToDdUf4yRF/gzMfx+Iut1ZFje4huNv7rrPM97bZCkiTSUisB858ejC7Vd\nUd9di9Ce5/6rS0J9vTpQQgpZtJwvHpy6maPzn99juBs+P8k7FThim66wtiks\n+9i4\r\n=sCa4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fb6ab8638680c5c4afcdf7b44c2fc4cdba9b3253","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-betafix-fb6ab8-kyd0xqg2_1642081623232_0.450489485468204","host":"s3://npm-registry-packages"}},"2.2.0-betafix-cd49a3-kyd23zzz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-betafix-cd49a3-kyd23zzz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-betafix-cd49a3-kyd23zzz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"463ca92988a86f3a628fb7adcb13e4a2abfb0f85","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-betafix-cd49a3-kyd23zzz.tgz","fileCount":965,"integrity":"sha512-6Q1Z9fnot/sGhyJciVlqYL004aojMV6XUqihj5ASJHt9xOvXEX1poUtXMXYJsRppJAaFPW3+1t7423eI25UDyA==","signatures":[{"sig":"MEQCIBpee/8vKpwvGiLgO8hiS5zxz3oCbcVUUlk61PvcpFgJAiB6o1LszK9X/MAx4RBZu91koDG5b7sBNjaVkJH0BcsSZw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4DUNCRA9TVsSAnZWagAAxr4P/257pDxAQxPT/sy8pICL\njvMNytOlHip9fHqy/PlkQOF5qpCF2ZaNaEj2eKsQw31StrzcgJzY0YGiKB+Q\nIdbkfSt0PhoRkZoRc4Q4MfAtLsFDvM1fUbuFmhzF64O3d9aoBU/KdXneHHM1\nHS8p6cYNRwaraMw+MOePYaUx83VO2XkzTXfWKJ7Nq40Z7WxBLLnJVGZD0zpu\nLnTAAjPvwdyWmQmq138O/rb4BLu0fDKG4DEOdWulV58A+x6iARZDY/XbjeqC\nt6GpoFCC95k5h5suvaejYF2eKsgOqUgtc/5b+jn19CE/AH9YF/1AC2VwXs8k\nWUgaQFddZNRhE69Tio6AthHKadzMvp7yofx7iKdCTmNnqKSV/sn09FqzvSG1\nEj9j8X3kBVGNxvkOlMvK+WBdzZneTngEteHHGePydoHHFZQw8NcVE0MRc8WC\nYTg7R8FYvZreKhNSLOgRuLfnRPYHSb4qZprt1FTqT76z6/ZtKQOJ1myMyfsq\nQjYVNwIhh6E2vPPjMMJNBbh4OztUeOc0IhMqFsBxcfE6VNP6k/95Q6Nz5RSZ\noqJy5XNT8++FcF0x4Lh7WnGpfQIy1m1kiDz/RkXfpaL3tBpL6fiy9DGq9yKM\n36kUjOnj/jwkBKbHu26PyM5NEohaFKdthQ3D7tkr4g7d8nxNNKZLZ2K6ZzyY\nu+Gx\r\n=N8q+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cd49a3e0f668050d6e003e52b658b9eed18eaf2f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-betafix-cd49a3-kyd23zzz_1642083597050_0.14632187353389714","host":"s3://npm-registry-packages"}},"2.2.0-feature-7d71ce-kye5p7hi":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-feature-7d71ce-kye5p7hi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-feature-7d71ce-kye5p7hi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b93959f9ac20a38a62a22c985dd57d1fed3ccd56","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-feature-7d71ce-kye5p7hi.tgz","fileCount":960,"integrity":"sha512-G9lXyp5ht0mLfAdZ0S1uP0xuhKPOcjMr2FMCd2uOQgmmWqgnhvSSsqSAtDXV6UvdwwLTty6k1dOwYemgEmQCNA==","signatures":[{"sig":"MEUCIE5BAHWL61tRavKFs2dtVHScjVbLkMPDruTGAHjMCIeSAiEA8gRBIM3BHY3b6AEzrKuk8H0ozIaAXzOEYmffqG7yWJM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1635178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4TjWCRA9TVsSAnZWagAACa8P/0EiHO6FlYnYeqWiJeSP\n+9UanF6gibNe5uhUbfbkTfODbq1vfcmWdl8gbRUJRvEdAQ8CBPqmdEm8Za2W\nEN/zHI9nwwEWsnA5xlRBMZFO4HpeDRl8sDmYUgbww1xfWKsQ3wwX3T5JsAPJ\n2GoAOBAD3kAYDl0DDA6zOaIf+VOvPyfxXCxt4+VbSA/LtL7FijizA0ODEe3J\n4I1S+bw6rV4P3y9Xh0PbTd/5Qi18yChKnjhJC7cS6N/+s3OqKHCc6uFAePhb\n2M2Qc6YBWXLMxTRCU3KY99OzXmqMo0Je3JscKZ2ei0WgjyeOw/KqV0S8fYmF\nAodsTnmI3IgNulSZFDABlETR3HGHOsR4lPMm+hsxdbLOzWuJwbOuZb4WzVC9\nwoij8Hcy7KzXiggphTstX+nyBBNsl+IEtf3S+mmJ4n1GcDnwfmCaMPVMAjOP\nxZ217MrwwSkhzdA308XWdd1mD1+DuQLhM0gISh6meNG++bmoHWN1dlqRxZVX\nTjxFoK1MOJvhjlgUyMLV8kvtdeJubZkOcRFNsld7c9kSZZVf59WrbiJkT4BE\nzNPhRa4SgQKWRBiXtzZa2Byl3I4J8AlFvULI+z/bSgPpwb88R5JEfCDIFOya\nLCmShjfk762RZNqDS1mY1rsROoQmb8O3YxL8O3GM6+DK+mJH04vhDEG6fSw7\nv7fL\r\n=8WVa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7d71ce7a26ddbe5fc0608609adb5acffe9ab27aa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-feature-7d71ce-kye5p7hi_1642150102026_0.3454503993288416","host":"s3://npm-registry-packages"}},"2.3.0-feature-d3f296-kye714it":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-d3f296-kye714it","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-d3f296-kye714it","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"14dbe90a98205bca0743900ef8a2ab904e9e9077","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-d3f296-kye714it.tgz","fileCount":960,"integrity":"sha512-1zKperZ22Qo0UYSxgukaEGXhcsN6nutS8yu5SaGAQNn0xVx47PVgpN/AASFCgH+FGoL4cep6MKm2iC84d76M6g==","signatures":[{"sig":"MEQCIHGC3FBV113a0ry1BUkeWc18c4d+7jPaBwGa/ENYpEXSAiBQMgleM5ffnv70pRWzDOEfYyD7Wv6jMEuyowrps9LnQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4UGcCRA9TVsSAnZWagAAD7UQAJkbYn4o0biy7H1JbU76\ne6r1upJObESvQGlhCGOZNVfkzSisVm4WJDUiU8NRlNc0mcUbRnj3U5TfrM3t\nOk0NZvpG27CbUdrZZfIWWjr6HT+6Pxx+Oqb4PGksNHWDG1LQnNiW5x66lBGN\nVGoKTMkMndRdXKdGlhHDRQs9VzViRrHlOKULC0wuXhgbUcaawjvqMqIV8LP3\n95qkt6gqa8+4UQE1eisg0XkdOW7ZXzXaLyfqEZ97fYZ6nbWRsUmmRQ4Euh0h\nIvRtGyenLc+Qq8SE1PECqPRGfXFebC2IPLUjTVw0UdEmi0IW+Rb1ptBBEoXk\nNhV2LWt1ymCvFdnX4vVOaqn0CLb/IBI4Ga+A87pkCyOIyy6OhidPEQXM8uz8\nkX5ge9evDNB2yiqVufcVJgIQW/QI3cjRe4Gi/H3bhqf1i8w/CwSsmsxLTHry\nSYbGhN4VB+oWVff3FMzGnYg9wyKHY5aammNt5Xv57UYlXdUxXOBDhNQz1Lhj\nR20rHG9OpONPwfwVkNZLMBzIzOfnwLFmRCQ7tAT3WKU/mcXYNKHh+GSRyfO8\nAFcO28w14YT5wYF4l3e94otVkFJeuR+RrKP53HFxyTLnenJQK6QTrwgyN+rt\nJ6u86GNNPjF3TVIotgRp2cUsYp4RsDEPN9yBkqOa+me68fvqF7sgu7eF32w2\nUKsH\r\n=zigT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d3f2969d7d09eee79dc0f94880e21c84e5576cda","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-d3f296-kye714it_1642152348703_0.7448589561600476","host":"s3://npm-registry-packages"}},"2.3.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"53e0683ed9e2734a4d14d489d4d4f6736d389f06","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.2.tgz","fileCount":960,"integrity":"sha512-63WyvqOumj1xcuMMWo3yt20dbmKnF4TKGkXBAeRYBTArwYHOGsNCPZvlFODCTlqKDrHHEvffnSS1R2ssapPVQA==","signatures":[{"sig":"MEQCIEeaUHwn+Pb7bjsDD3amjL+XPuRS3m78vLyypCIwVZ9yAiA2TMZ95iK8Rsen/tz5JAnwLYypjsP26Nbtc9zgnpRVjA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4WxtCRA9TVsSAnZWagAACiYP/3DRY0ErBkUILW/1FGBB\nXxGDs/YRzG9C0B73vY1AEzr9KlmoqsHh6IeOPBrdSq4l9teKD47/3krvT6GD\n2blwvry2mzzG6muv9Y0TOM0PT1y8wud70ilukJM4pWxyQka93500qNS1Tsy6\nxZwjt/To3T1Ka1Mp0nwoUKsAED4MsnBu1EKT7b0Fdug+OnlIGu1RJY2yF9Hi\nZQASJRSk5KysBTmpPUGPlro7wdRBKaIBiJr2QQBZNoa7o/B3XSo+f89ePwdY\nG9GatZBUMCw7Bfk9IJSAGSvzdGtnfTWDV7W+67lvadf9ss/y+gCCAmqr5/9g\nJQhZb0odnEa8E6SK1w7o+SYFwTV00ZwYvr8bRGBJIRcZlPpt4VuNX8XypqkF\n0WNSyUvR+OikaDTaPp4fwKufUkchezyRc3zR/drG7CwIeepM1pPYzldhkPlU\nZmkJ62Zz1uxNeIfbiXYPeOgQYlukzQ90kivapcidhi2INHIsBjphHQlEYCAF\nwpWRZ5Ob4I+j7v/tmkOzZCPv8OEWf/IoR/W9V3wGydEn26fzeUBUHreGxGAa\n1HzQfW8VYTZng6nz8DIhvAwQXEvkyS8eBARmzzx0G1gMpY64Zvw5/U1jIbLM\nE82BpMsSAH2knN9DBPuojb4u0tEOYkA7KHncbIWgxV2LpKSqtmm0blEP1orA\nP2Eq\r\n=5E6Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fae92190b0e0c7a8248c31fbcd517975f9c66397","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.2_1642163309511_0.9287204250445535","host":"s3://npm-registry-packages"}},"2.3.0-feature-b033e9-kyee5a1b":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-b033e9-kyee5a1b","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-b033e9-kyee5a1b","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a21fde3b8199688ad0e0197fb21077ad5e7e6fc1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-b033e9-kyee5a1b.tgz","fileCount":960,"integrity":"sha512-uoqL39jyUfuhClYqIk07IN/swY4mENRWcPCNxpmSc96qltb0PQhnzCstz2rBJTATSYtK20QxEM4w6G8Gz3wcYw==","signatures":[{"sig":"MEYCIQDkxLDQFk3ylOsq9YbaJgRaMLUGv7D0tIcIuCPv6H2WywIhAPg/rQtWeghX/YRuZlcrxddJtc0SwquXVLt6D/9SDFU1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1648924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XBHCRA9TVsSAnZWagAAZ40P/09zWmVg2tBNf+94qhEc\nFRCZYJadrVRJ7I/8cnuVfPaM32IXYmPaWdVUJpLeRjkWkEqxm0iFdkeTaR/E\nGRMCFCmSPMT8dK6XUkh6ivo0uz7V2FGmEexyXSCB24eFAfVDDCxaBYGPqxCW\nEu0HyJ7DjyN6bbMw1z/5+rFdktjRaBzPhJY4k2BF9Qz0QfabdiWv67M2p9Lf\nTSM1WkUXmbQzD+0s0SIHRHAA4TgeEFDnbcNBTfIx/7zQG39FFym4OZ2qRFd8\nCUroIJhAwqXgi7p9Xac/tEeax91wGk3tAeGse2gOaHUh46CtsagvQsRfFuar\nHNZ/zuwcJA+jU7iF4g3atf3dCuUjKxExciKB7oPhA08N96ckXT6cnVeFRYHm\ndiCTPl4uy//RvvvLgR9oj8gQ9iyLUh4oDGjEhHaXlYaS0K8tqQhbsPHSNJnh\nnRTfe3oG+xpk/gOWtvahA3utu8VsLGexSNfZ7fxBUigZH/ZAU9Z7aGFELard\nQX5K2QBN/0uSHZ9owwhbZEG/EMhFCVy3kC3BbMHdrueepkCZRSoyDNKCpx1I\nntAMRRWT8CLCwJpkp+A5yaxF+LVg9U/b966KKdQ0c8JvZZ61SM7VipQlGCmw\nsH+IOKsJIidbiDgzVmNnJtNqzR1dGe180vEP28G2Qe1lDjP+jm/fYNZca6G1\nZOKR\r\n=ByuV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b033e94d6dfe7b12af57f5942053b277d18a861a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-b033e9-kyee5a1b_1642164295341_0.9714378891243316","host":"s3://npm-registry-packages"}},"2.3.0-feature-0b85ad-kyee6vxs":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-0b85ad-kyee6vxs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-0b85ad-kyee6vxs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1aa186a7e0f512dc025dfa77e822b5ba2fa507ed","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-0b85ad-kyee6vxs.tgz","fileCount":960,"integrity":"sha512-OkaNbX0ILXV8Wu1xhBYO2RWYa0D5ekHcazEvmxm9lOH7TUZCc9NCgkudSzr2OT1iWtcrAsuZRwamvlWtVN/iRg==","signatures":[{"sig":"MEQCIHZ7UplR5g/pn/sO5qOU/7Oj/HF99BWx+tJdWP0bGnKpAiAVwLHNfoEaZXFtuIolUZLZxi8yzYXblHfND6MjBFdmTg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1648348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XB/CRA9TVsSAnZWagAADVYP/Aq8rQBaJ1tpx5z3XWHQ\n9RKtMauui1sk4LA+KxfSs78YR98PcZK+Dq778PoZ/mEJ1qCTRxSdke4ePwrx\nj5wCW473K/tyvGXETpieP9D1OeGsU7Dv0Q11fKFVJz0yXeXkpSVyevr+0PFd\nUod15b6OrOj4yNIqbMqfyx+JYmQUtHnPsViksqM6xempdUZbZc8pmA3gqZCT\nP44gtneCFkreytsPsHsV8KFiLI3QA3OraaJ0EJZlsUCCadpt63p05K6yqCYj\n3KX+64T5tkqu29QuC3pTyjrjJmXPVvYbi7HYBq78HJ2eCobNEtTK9Tn2ulCU\nAbYQx/jhUwceDcG5vPZy9rfeuljR5GJhzeNnJ+0x3yzX/pJp3F1VSl71NhLD\naprZnSbB5sVq432EDQQU+vDaA38QuubppiBSTci3Bvc5nSW1xJ1h7SCxDu6C\nh5hCFhIUNF+j5IYPcf2SHP8VCABdOqtkhmpt64o4mqQsh1N1Ybs+oHlcQ2Xv\nHT9SB/frnH0f58meOt2A8idutkKd1JSMBgrUebJVlW9gGJpzCpP8IQhlPbsf\n3OdoyrKCZ/Kej0gMvazmzZQuZHZRxrCIw51HP94JSp9NeEebAYg+ERYxcQ5L\nQTJUweBUMCIpiVBRnSlefalHTxGINpHW0Ttr6XEj1JMrUBGqzdstGKQJOzA/\nXr2T\r\n=YmS0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0b85ad79b74a564b7632999ce4401765e2d14701","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-0b85ad-kyee6vxs_1642164351719_0.7842896699602897","host":"s3://npm-registry-packages"}},"2.3.0-feature-0f459d-kyee7qbe":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-0f459d-kyee7qbe","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-0f459d-kyee7qbe","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7333c9ca5bc59b4ffa582074f341eb76002f5ca2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-0f459d-kyee7qbe.tgz","fileCount":960,"integrity":"sha512-q/rYKVg4qVzyE+jX4AhfF3Zup5FXaKz4s5SdxjvdtZm1z+FPetChg9rmD1Lz8tGurRYPxysJVs/pGM3inhh0OA==","signatures":[{"sig":"MEQCIQCv2tHxcZZO85/e8QR9gU2QBF77Ym/IeAk0Q1qto5WoNQIfHN6ubVmX+0uN3PWU+wwNryqb7VH487vnwp+vXhSHyw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XC3CRA9TVsSAnZWagAA2BEP/3P3Xqgs0QyZJS01P1BI\n1QKmxz9Lw66vH9S0g03+6NZI9oCRhI5WzpHZG72OX4nfWv+d3+o1hkA9iqD5\nLV+NJT5qD/nitzGNbSK4tMM9dgbAuV/inGlAphEOoIu8R1d3uPboBRFpmKkn\nB0wKHnZzxwgDvIsA4VEdBFOnambRV+hGr8l4B2tiAH2iNVOcCLPS2ISkoT02\nUbxnuYgRoLLlcWJ3PbqSPmOR+v4z2LvtbfMBGsyVKZGxppJWemfuWR/xlKnr\nY6ZkWc0xWW7aqSAoQ62H/P85YgaxTZuKCZ1LmbFqvA0T21R1M1z8ZKdOD6hN\nPimTEU32h037kHP+Pwf6FJm7T9d4Xv5xpg5xR4oj3UMPr2ZHpfNtmo0/xf+w\nog+pE2QjGt710mxPQ3s3tbWuxBMIBaDjzO2tJa6yr2zONyEUkPfUoQO6BG4T\nbzray/Hf7MQz3yuGfsaFhxMoID54si/G/bTSMrCmPbNH0EMmh0cJqYf/J/aq\n90UWUThzoX7JigHN/JC7voqtoIzU4qIy12Rgt//o+i8oVX4B7Z5rJ4USDXD9\ntBdbJcpNSb5SHxjoIei7aUzotogyqN/kQaGqIDmPgnd6aMWFhKn+iZ1rrwFQ\nIbgXc5QPdwqOXfWuVSf1Wk/ZELrQbQRvxcFA63MrxpHfMe4mwhwxGoe5ETjP\nAB3B\r\n=tEo8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0f459d849a378f6e99f19b459d8b2657f893eb3b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-0f459d-kyee7qbe_1642164407461_0.420307863986777","host":"s3://npm-registry-packages"}},"2.2.0-beta.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0-beta.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0-beta.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b7f86515047127809bea535cdaf0c6438ce92a17","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0-beta.7.tgz","fileCount":965,"integrity":"sha512-i9QJK0qjtEDzHeJYUIL6rwqk+HKo6IC+EvOf3VHVLLfo90CUK9TTDVWe3Gxsoy9qbqZQr6gWak/Mkub1j1eDfQ==","signatures":[{"sig":"MEYCIQDwhFHPEoEACZ9n+LJPTzMDHTYlWIXpHd1kuklCsgOTfwIhANok0kukGTzJtl+KwEs9N1hTZgXgd1P+3oLuJLaz9jJ4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636843,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XEqCRA9TVsSAnZWagAAowAQAIQL8bJ8fFOxMx0S4BPm\nmQCFqJkYNTTevZk+fDlqzlrvL1fsDBtc7ZDRSw81EeK2aaX2crC1Z2qAkWRD\n1OZ5xxvhsLz+WwMOYUjmLOMueiySuxOlE6vJCLksdByCI/FSQQ6JWSzC+psa\ntGKFhIRHhMS94R0q6K/IfLrucpcMAYE8DYvxYlCpbfPVIXKSux3OR8QJnCrW\nSt+ZfkNjTgj62vh8M3HZX++6EgcN+Lc/B2OhWdafbEv/FV/Yk9owMmlxfDKQ\nSajWcRE7N5mae8xtvxB+HP6mYXSlagQgjrXuWL8B4VGq89YCjjze/MrdtI2N\napR9GGHfcXRzIxlz7OB05rraJBRG9MpXeN1uBNMdbkHDnrohAIbV4u3OC5S0\n+TMxmDHarkdoplhVZFN1dbD88TYu85SItbLPKiRib9tyfGMmLTKoiICT5VvS\n0pIrAcNprbvPckLGCWOQRkcOAL4a553R7KrFjNdU/hSbMDspIemrNbWDF3pM\nFy0IgDrUZwbrXodzhLAst2dNXnapMPiePw/f9CuCdJVSNmFTFxYIeEiH7nH/\nju+TNoajraGtw/KNi6KKiJNbySHXRhwlzUF25icorc8EbzdUVY01kyM7u9+w\nhXFsfyWONtFeXyHiFqBoQ84AjJonX+G21gRmpxLOQX+vehodv+Q8y33nR4At\nnQ8k\r\n=Jr8y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a557d59078996794f48a5d3595f93265f49a2cc9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0-beta.7_1642164522096_0.11734342189452085","host":"s3://npm-registry-packages"}},"2.3.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a6b30f90c9ab1583d9b654a2a80d4b00b71dafea","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.3.tgz","fileCount":965,"integrity":"sha512-SrK89AJo/DJhxGvUGqawd/XozsMJEmsBcTX39K5uzD1y9hhPfAa4GKWKy4rmaElPZOkCxGE+UmLY0+CQkl9FdQ==","signatures":[{"sig":"MEUCIFqmoy0TQh/eeLQzyYKZj1c2vSqmaiGWyR6zVft4MpSsAiEAjH03pUONtZ8ELFTpRE+hC1l1TxOVhYXgBDo4tZVVYQU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XIXCRA9TVsSAnZWagAAB4IP/2azTP1ti5Br1hFFU+Bh\nGTKEj+tBSJzn6Kn1lIQ3Sg1TqRFGfQrQoyLqoG4ca2E3xgJTr3TZRnJHegOC\n0y0NPIc6MTOsPAZNMb6+VqKpaEP99hTjLEZc2o0sSYez6uLrenSNgRhEy4t+\n7zG36FkXeSzgOTJ4+8/XK69pkNSGW0wQBlfVcAwVeZw1Uq2w+KldPcv2632q\nkS3w29h7eEcDOiudhcSBvVn2VMKyQAnKvMEYxBmb0fB16Wp+atmemlgUhDXF\nX5WJdc3Sekg1G0OZgscaFXDrS5y0gP+JSdFCbqEo9vku2/o7+YN6gHERVyX6\n7S8o+PGJEjIRFGLlfOSC9a9tm8i0xNfOGk4hxzm/pibGLUSZpKBJ+CYGpS0C\nSLhFPxy6vt+yesDdPXLoJBRNDJc+90U33Vv9gYHJcCFnJOSkDCf7h8deRUDw\nN69IXo16oQFbQ5mIGaSUV1WSqNHtbGYGjmO/QKgW+iAGb07Ec+o/v0pjWM/0\nMuVdW355MWJIyufiOs+ANtGIklYILy6xXzYreFa4h3ckrOWrhGJbRq6+Yqea\n/PPU5hiYOVckJP97mwxYV7053A5j8RYeefDGIeBj58ST/l5mPeDRy5+Ne3/E\nwrtEUQzFRfGTi334GQaO24GeJ5eglGjOzw1dQJ07ta4xK9S+M4pwMrTuGMoI\nJDu5\r\n=yxZR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d4b5234c1ebed923a403b344bd71121c54b93844","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.3_1642164758894_0.23881691897589974","host":"s3://npm-registry-packages"}},"2.3.0-feature-330879-kyeez2ij":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-330879-kyeez2ij","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-330879-kyeez2ij","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"df2ef312f582856dd4fffe3585c290046c080a4a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-330879-kyeez2ij.tgz","fileCount":965,"integrity":"sha512-w5QM9jYw4KSLNM9HwKiZPU+pK46XoEqWPugxKe/HuUBNpKvffgsSUQ/oJgByD/99/R0Fv/pIKKuxUPofGi06xQ==","signatures":[{"sig":"MEUCIHcZnvvjOxej57fHn+BGrRTx0CKkWqIcWmzXCGRO4DSYAiEAj3GRnth0d8Q5ViaZL4HWz6fzvpT8B27kEPtq8KbzYbo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XWlCRA9TVsSAnZWagAAKmgP/2E/oatbYGvztXy4eqeA\nlKPfgnfA/4tuTU4ZoAbdGxid6k/GYl0ZFJ4UEUP2Sujqgn/lXa8DC/3Dmwy7\n5prFpAYWyIXjs8CtGyMe5Th60q6gxreDhy4a6w6hdAlheDDZYa/IIlHFj3vp\nW2VgYElxLZZlAcSYYn6uVkc1iJEaLRzQzmj8ra+JZ4SYDk5NWZRjZINKJh4g\nxFXk/qdT9ygOUjwhF3GMad1S+EDXUCroUQzeRtVoR65ig7ysF7Jr9mg+eqkW\nd9DQAegmjXzOyqrfBEo76IP0+jJ2nZSLC+KQVKsiGjIa7X1wk00aZvstp9c5\nb9vBqFr9Ya5p+k2oMp82+BUTzK9Hu7SwXOwVk2CR8SKYZcRvGydzm1g6EluY\nLThGqiHYlGaxyA6hx4HUqngVhvhMTeswnuHIw/HRM1dy7pVVQShd4hxKoO5x\nWRrjQudrrlIHhYCmVMrKCszWUEXZaK5ByrgjLbq1j+jAi1z1/N2AV402OiY4\nykPxGFTyw+ERWDL3+Wfuks9f0m0/LXwPZuFer7S3WkSF8NtEkhpsKD39aJGF\nt5//LU/DJwB6weFMwR0VMXZrkKRxXEhbPDTxBoS4pLBLfgwQBYRMwZsBvZIq\nb1M79hXHBKp4JCs1xR1poIG6tJwmlFg0ZzNFhsB/SsK7L5G/ZPeBDzaH1/6r\n18Cm\r\n=iad6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"330879b641c5aad1fa4c8ed125052d371c4acfdf","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-330879-kyeez2ij_1642165669801_0.786839843221885","host":"s3://npm-registry-packages"}},"2.3.0-feature-a0fe27-kyeezq50":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-a0fe27-kyeezq50","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-a0fe27-kyeezq50","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ac80e39c8502c7ed2cda44ced2d6706471ff2e33","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-a0fe27-kyeezq50.tgz","fileCount":965,"integrity":"sha512-QDhEMmMzIlx0E9OMI+pGtx2UZzC489CeAvmAq+SQNYEw7WZ6Vi/MpKvRKqN4/DAR2paekwvXFemqTj+IlKYJOw==","signatures":[{"sig":"MEQCIEGBcTuO6ys5MvM7CO/Fic54CXjkE1qYXDEiidkxGS+9AiA8vEjJIlSN8rRQm4JZGth4AfyvoupYt2buAAtoHPIrDw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XXCCRA9TVsSAnZWagAAHh8QAIw1lwPSWAouPGIjdsaq\nJQKOBDSL3SqEVsDArY8oDhqEN/71SMomlsBxClN0TjfOsmeF6LSyW00Msnwv\n0lcMmjF3pshVStbWBX7DHlROgu06sAYzFJ5KWtNb+hWl4qEg9kiyapALM2Ni\nScn3LyNVh2Ex5nw7XoULctDLwCtI1IGs+WF2ng335Axx3SueyFVxA2EtIy4g\nf/b90qRvgnSgDSZ77FnFuhIXdm4aHldkyzKyfO3hENCHRJiotoe/1+ZoD1ZE\nwbiAfhah9urWgotsd2k8tfFBvCsthRphEFx6zKQ4u5vRKfdm033MuNyR1iH4\nxhOiGgJ7ZMHg8qR7cFHhd86kwHwmVnwpqd96PJXC2nYkOK9G9dl6ixGzkV8O\nC2DbRTMMf2IAkUqR0y01/QVGQMnb9Gq642Mw4Mi0DZriEFhxiY7JeIwbkLeg\n1CJOzGbqS6kcqVmdrp8iSaw4+iPhwnTFBPg4O/xRIGcxqLZgLw2IWxWiWfNA\nLDgZrX8peCUqb/0DbheCsfmVOgX0bK+vKMquVfsz7n15O8/xpmqSi0T81P6y\ne7b9XITyWcp2idoy2xSh1jK+j5+pbco86Oom5Qr74yi1O80HLBhDQdhNz4vh\nDZp25UVsh7bHnCoWEtycKRDIMWnS0hPBc7+Elz+g3H8nlPFYoZ6CglEyQ09y\njD56\r\n=ck3w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a0fe270d1a48dbaf83c4348d85756cbc63c577b5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-a0fe27-kyeezq50_1642165698596_0.4931973571362349","host":"s3://npm-registry-packages"}},"2.3.0-feature-d0d8d0-kyef062v":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-d0d8d0-kyef062v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-d0d8d0-kyef062v","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"893b5435d7aad8a0c63f05d094abaac9658ded76","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-d0d8d0-kyef062v.tgz","fileCount":965,"integrity":"sha512-gFlQEu+Ppw1aqTEkJeWf1M/kjXUKqdwhRZFExFcatPC3+GzH1/eC6G8Hbpmm2BJP46gPCM3O7z3S9OXp9F2u+Q==","signatures":[{"sig":"MEUCIFv7gzBVvtZsCapoCmR2EmrvN5DaWPWiValWc0RzfL4hAiEAo9A0qJWnNiOo2Hydq8rVKlxmih3n1FsRPvg6xdLXhvA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XXWCRA9TVsSAnZWagAA+kQP/irAv7xcM/h0EjJmuhCD\nNSNH/wv86OAWCHVdu19kDvxAKurlbkJmrgqF1fXB7TnkhuZKSqK/SSYVNhvr\n+BXAwROErlqUIa1fC97JUGbQXSIPNN6sXUX6Co+/Pu+OSIwwfT/89NNZINNV\nesHltN+EPHvVyNPmDq5m+w/naW9ItSNae3EpoN6XnSZ0GNGarnUP7Dct1Zgr\nGA5fZFc5fSHHAyrKRiv+88BLq3CZ0ZNgcnlhJ3d6byXCPfIcMS7YgT/Wj0yE\n1N86rF4o0SgWJmvp1eUxx7vZ01gKbIPvPcXL4opPSUZbnLY0jKtuCmkfHy+L\nJIpe+3FR2X2K7rsJ1Xj25qP/pvJYC/9M9M8MuX7xRYhSSt+3U4yvrh+TtYQt\nZ6Tth/PmkVGykV/DXmNAElTJmvMn/UNbBapjfpoFGF1OUclvKlfaF7bQL5z6\n3RaW2UKx5Jt2SWdr9fyybAFEd0P9+bD0k9vQA5urkUwwxyhxRt9hpk0pcjbj\nwj62z7Nnanpud3lS6S2+gKMSn7t41IFFY0RELK1+RiNxkL3X2r8BHWR+yT/V\nFWwD0+rLXrdQpEYtN+tuzO7ur7hfote7zSLyPxktLdprhaxczlf68gxhvfDf\nX0YSpzHgUhM9T3Y1q9PFwlPV8OTZVW0Aa8b9x5AB9zyiz/RzFDmOipKlR1h4\nUpaZ\r\n=Q5PG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d0d8d0ddb4edfd331798c7b5a286362e6bb6ed2a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-d0d8d0-kyef062v_1642165717868_0.41337472296904676","host":"s3://npm-registry-packages"}},"2.3.0-feature-9f2789-kyeezgf9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-9f2789-kyeezgf9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-9f2789-kyeezgf9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ab3c899199f50b47c77906d212d60e92962d867a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-9f2789-kyeezgf9.tgz","fileCount":965,"integrity":"sha512-V49AJUsytnOaVaVmfV3kf1m2Akbeeuh7iw+Pmv1rNW+kYG1NuKcQQsrhjk2yMGSOrZpQPdWWnfj4Fn/+dCY60w==","signatures":[{"sig":"MEUCIQD2iw7ER8+7M81rUrxf+5xRsGiUXHQ3N7u6ZiVKXSST9AIgXs4yTBTpTEKV7OFPyur+6H8Av1IqCiVlVeBthxdEerw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650148,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4XXhCRA9TVsSAnZWagAATRcP/ikjQQdr9Z4pdwa8ntwU\nNjxjUIkJ5tQYCnuRt738fnGo84NF+7WbgY15p3T+njJZ8w2AmbtGqPJGzyOW\nGLRHxHTdMxdZAOiWAll+I0eeUNhloFMSAOP8Y0sGHZUzP4N8hP+WpQ9c2zqm\nehLvvZJOMiI2H2cWRMduh8n0Vsq4oabTSQVWnfIG9PCclCMBI79pbg7hMH+5\n0eE+bzSfdoMb10rpLTTPdJSKkjgJN00qE7wKSeU53tlckuV9aGcfGMA/TACV\nD3dnPWfFYNM7tYm9eARR/yYIYU8jhVyUjrtMzth3LZBGwcBHEI+rt3oKRPMa\nsIH/FHQwmtTABkBlIs7CzTKF+f96msySylUXtEwwnXG9iS5BFhrApUU6YAyG\nVYL18HFOzklN/TC/L04agzz3SwGKfDJT6b9NHkJ333W3Rifl/z3FnOeSzLO8\nsXjdYAFuycsb8L8PiN/pk4dZJ/Tsou4ts5/tsjIaz9Gjfy5b5XO9oeqDnH7h\nx9T2OLUTweeC23iHHdFYPl2G7z5oUZ3fFpXk5Ld6uHBu5zY3tc4LK3LFUYzZ\n9Z3HrTRbOfTJISYxO7UrcsAhRrkJvmBf+CD0QeVpDw7umlxbmpNBFDKGZK1E\n7yT8vzYxxpsoLWHIkYtAddphLTIuduG/RvcR3U2G3rbt/ZBjri+mPNseRBA2\n62Tz\r\n=9VQ1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9f2789b699ec6f75e708a10f6a541a6fea07d6bb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-9f2789-kyeezgf9_1642165729730_0.9101925104875719","host":"s3://npm-registry-packages"}},"2.3.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"137f493547d6293bf85599449fa7f3eb43b9220f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.4.tgz","fileCount":965,"integrity":"sha512-WiT/pfBCuaG6dCJJuJZXliiuEDW89dbybM1t3+7oSTSIlkDa5To3CDvj3URdWsnJg1pzN+j2fwDMe7kbY2k2/A==","signatures":[{"sig":"MEUCIGWAyHqCCoxTiJrsqet+c+pPl4bcl9ief86qBZrGOUJ7AiEA/n88Mv5PFThOCmW7mQJ9/00+ro+UxJ4RVRisHjuKYRI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4YVKCRA9TVsSAnZWagAAQHAP/iqx5UQ8+OekVYSGdNPC\nSk4oXz7uQzh6auKJFRi/bwa8Teg1C+/WyWFhwz4MvCFPNLLfpW1xjTFVSa7w\nxb30E5gAbmI7qLFN1PuEX8rD/33yPVLZwbLmb4DXI4QhY4yv+YMjvNx4D+0o\neamTjMAoy6ImJPCqjlWJuvWSuqYE+ur6081uSQ87nuHUe9EZ8DzXK+zfeFU3\nCsM4nw1U+hLJbGeL1lnEJL0o2WQu9W3EpfpfigIZS0ez6pooVklBr9tUYeBL\nHUWPSoUE7gD9dKDn6h6j1SQOgnBcqzG7YfXgsLZ22HqVYdfusN3WustYV9eb\nUK5P8HTyxioJFLytiZfR/JeJTu4+Jri0fBQNoErjrnqO62oD5tTTGNKyX5oa\nxTYuGJzuYFnUk9Flij/OjZE6+QtyKGVO2Pvimx2FmSrT2fsfN34nWLeWomxH\nsCiPaSvPwMWVXiuCpG/CYp4MO95J4DdxQFnA+me4Hkzu3bLn0evqBLGz41n0\nab5Pb7pXhcSiLNMaTejag5Uv3fSfAlvdunJO54e7d5Xemy5Sv6Q8f1JQw36B\nl2huroMPZvsC5Y9KpV8zLWBFHPuh5bFYJB+qAHlYK3L8KkHi0rAxmkwslPSU\n8FRq5/6hUUdhf7SDpm7fX16tNjnzClwxMuO+u/Ki1lO40OHOCd/46QROPC7b\nZGoA\r\n=HpOg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eb3c041c945801bbdd0a0f6478f8e58feb006133","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.4_1642169674108_0.0012662218735468578","host":"s3://npm-registry-packages"}},"2.3.0-feature-d783d5-kyehi6rn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-d783d5-kyehi6rn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-d783d5-kyehi6rn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2cf57bc265d5dee77b4fce04206f578efbb9bfda","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-d783d5-kyehi6rn.tgz","fileCount":965,"integrity":"sha512-pVXqeeKZAgIoiDs1oTbvTj5pMyCPYIdR8yclUXGHx+keD/wW6ExV73JsupiYB4dOCHmor5nhrFmGsrY/DB1LJw==","signatures":[{"sig":"MEUCIBlqh1ZUo2sd/x2c0dYdrttD5Hyy+KGsvYfCEtHA3lQSAiEA8vg7ML5tPiWi6o/+w5IhYutz8ysJ3mJWW4qpn74CR/I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650842,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4YY+CRA9TVsSAnZWagAA03MP/2Cvpu4E6peNnFj7kjSn\nrb+Xpoz8Txkqsey4294DCwXggk3ptO0LlRa9vtEcOhhuUaQP2lPINHbr0KNK\nbdr/akRizePnviOOD5tnbIqYBEivqPZBuTh2zGzAKE6Yc5XEVA2PSLJAE5si\n0DbRQjI9UHfSvFvYo5oPYh3vUB0531Vjqn5+ZV72KyJgIHIFAWXDKbMnQBbT\nNlZ1FbpuLi1KqWCkhyD5wU3cFegJ41e4fa2shtCyD3az54lHxllLqTN3KN8r\nHtkWaHAGqH6o4q584QvA/F/+KoChk/EG4tFkSi9e5KXAtMv00G2avKL+LejW\newE8X67PeyyT2qPwaHQcGCrWwJ6xcpIpN2zCuUD+1u5e2YqBHSTAQi+CJy5+\n/2Xz1ewp9e9hOL0L51OHkdi2euse5LmEFJBN11UGv+Z0QC7FtJcJOasEstgB\nUl5atgCQGgF3CnggI9V2WNVxFreZTp4IvGA5uXblGKgHjRNlmWOpe3HEr+TF\n6PciIFED9UujrbEoIhy/tGRr5ulu04r5qVryjlGM+POimEmAH2NiUvREj1SZ\nkd6idDEoMrTTuGdsg2Ktbam31CZauRr61OaKVnzE3xiLAuLWNUaHhS59Rxjo\nyFzhUQUIbRyVEC12vlVxFgBPEx83RTpGUxVwn3XZcFeaYrx++/PH8tUXHdiC\n7nmb\r\n=3dnL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d783d5579da72c6b75f9dd4f1d215a62a4a2eb44","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-d783d5-kyehi6rn_1642169918403_0.6719592154945249","host":"s3://npm-registry-packages"}},"2.3.0-feature-a348ca-kyehisea":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-a348ca-kyehisea","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-a348ca-kyehisea","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"21e2e68e9743ac8fa1b039d82a11d96a9578986f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-a348ca-kyehisea.tgz","fileCount":965,"integrity":"sha512-6pLszuOkwW0EQreE6L/MpW86h2VTETwEPMxCRgacfGQedvAld6zVSyZag467Sqymp5IjU30KxRHCtn/JsyOrLQ==","signatures":[{"sig":"MEUCIQCmY7H8lBZ0B+ZZGpM1Zz7y07RYFH1WNHNQT+ZBLk5z7wIgIOSbQmrkM1tL+UvTq+bq7RTWuUXTxMISyHVWcUpEcoQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4YZaCRA9TVsSAnZWagAAPnYP/R8J+IV07yVF/p5EX1jG\nszfPwIoVKAbj+zGg4JFuRRGpPV2Ru7eLaJttVsk78iVR2g6QCj7nZMbRx88j\njLbH9l2Zm8o4rfWWEZ1RSCFzfCOMz52f68wYnaNcjq+XF5vdJ1WURz0PXpdK\nrOW9RKHfXOxQYZc8pxpNKPnVjXmxzveB1cRQRZ71jhjNPW8RvJ9QRZTlv0gC\nQK/1BRrEQ8S3UB/u0pVDxraosfAEkNS0oI4JBc6KK9H8MAyUvuQ5oNhvlotd\nVg+wa7tkYNaFQAzPRiqOeEPCHY/WVzyWfvi+AZRNgGA7xi52BA/6uBB/gQ3O\nj5pemM0jtB8opE/PR/flr1NHfODwJjUFDQqNKfYL1yueWIoX9wquXIj0qHFf\nnMQ4BEInh/E7eSZ3DJCdmPC0xAGEfJgjrwi9BrC8qPVFEDcl0iAKwXK4nnQM\nA+TqNRmGEHY//sLLgFQQszlNOKviNk8OL3GK5+h5VqOP0IBDP4+jCR8H9vmo\nkVQMEy7VY5kKcWSmODhPaMi60GcxgNiHL0LHgJKsSQ0gfYa2JHf9KlpMSerx\nizsQY1zF/JR5yL0cAwACCV+VjdxfG51vBDWAgHAgIqDjzBRqyiJdXIUFcLqn\nDWucjwtUszgal3NZcdEuS0BpXigk/d5qg8R1kpmXVnZWQFqOgvDCLILJ4y0W\nvgAa\r\n=4nK3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a348ca0587932a00e6637f3de97665e16d12f17b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-a348ca-kyehisea_1642169946755_0.6104809107343501","host":"s3://npm-registry-packages"}},"2.3.0-feature-600c6c-kyehipeq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-600c6c-kyehipeq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-600c6c-kyehipeq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9d13d9344623bd12c3be346a253b2c1d6adcb427","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-600c6c-kyehipeq.tgz","fileCount":965,"integrity":"sha512-9J5KCaQ495aGOeSG1mJSdFBEN23XIdu0fhvP7oUmzDrzs4UctOKJfhu1yDW1eja+e+lEsqPj1yG2QRZO7Gv68A==","signatures":[{"sig":"MEQCIBYuAdyaYchWw9hJCFM6cLRgQQ0J4TJw9RPkNdasbEZUAiAQKLR0ijoM++5q+dStKkehF6HvFe1YI4zXdx/+LBEtRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4YZqCRA9TVsSAnZWagAAVsYP/RNYvNSZA1Ff/MEIVLU1\na4mnZ9LpR06OUTPkuOxY6icAThdWrLFnMW4fy9gblMp2PVxwPaLJi7FvHZWD\niDDMBgoJp7k97aVFdU5qj5GQa/yoE3dN5/zKeIwYniOzjgVtDRHVOqeHFEQD\n+UNQY22xbhw5QmploJ3cxUzZr63FoTIkuFszYBNi+kLv+8pIXJwhpao9rrxV\nEyoYuS+3hb8PlU15D1cM2Sf0lQvgwOjsBoIHtuM5HihuAwsCmXd65dGZvrkn\nh4ZBBcEvG8XlBj1/TIYAAOhpjqF+czSGXFeAzsTEk7Y4EiJaal+y5bUSWdXU\n8aFGv7OUZ8Oa1QiNOTVZ4xgC+VzalzCUMK2Ru0Xtt1z5DK1ME3TywIOA4VkF\ny220JMty3moIGdkZX96Rf14I2oOmdNQyg73JHjhCCoVOYkZSokEDyFHzPWM8\nFUKgA92xSJorq2kq/gchRNrkvKzoc9dMueUb1swKITRS6J6WKhq6tntiaZ9e\nCo4m1uecOve2iP6dDyxtooHVRAzcCDVCxPWrlC+srYAchtJLu5QK5xxf1S38\nZsQ6ErN3a26hXwhHwKvBhIdqqtyPijvakKW633kyNGMh8DbWhsQkEbxONYC+\nvof3zyyQuKWwQGdv/UIDs2NRmoSPpo9saDQhSD9HG1lZi+AbK2TnzHZOIbDn\nKOtW\r\n=9Y1l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"600c6cc05750071cfd0e633caade3acb4963d518","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-600c6c-kyehipeq_1642169961855_0.4002448330683217","host":"s3://npm-registry-packages"}},"2.3.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"51b589ada527ca11150a7b20ad353fdf03dc1d93","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.5.tgz","fileCount":965,"integrity":"sha512-NkE8vBAlNkTfYocuCaZMg77fSb7k/u0U0vYCXhjiAa2RrYmXn+CA3LxA4EwMxvxTTCarMhHqfGYllXRbcNicjA==","signatures":[{"sig":"MEQCIBXpiwoGLXRlNN8tOEsun6RvdhIW9Ham+ddnCeJSbUSwAiATlW/rmJUosMYW9tFED3kurKCjD7imSuJunfQzNuRDSw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4Y4kCRA9TVsSAnZWagAAYcwP/ivQnZDv2IUTEUTf1jrH\nbuM1KGq12vJ7CbAcw0j7mURntP54EBEz1K4XON+f6TAnAybsl12CDjZ5cxB4\nNMypHU77hYLPgPjQ2edDnpIyX7MWJvhwy28nHIo9Ao6YKEyK7yS4+pHXtQFR\nCbt7Esgk+EVbHK3y0P7ajFlurf2Bl6/3m4vC2LoZ3tHG/uoVLl1XzcBCyEWK\nqJBi6u+lw+ORgz8m1rc+WpO3PyvOsT0THd4uaOLRADkmFMjXIqteP7sgfSaK\nDUvntlT6enIjd1ySaqSXGQ4nF2UnnzyRwYu53jf150YIcaWboLAqv54/gAzC\ngSThSOvF9SfYj9fPu+ir35JYBqWGXifLAK9Gkuq0zXJK1mv06hexdE9Y9taT\nCGitOIpyG6KeeewZaBxOXN3gYY43BRHnl8b2NQYTVcxSaZdvty1i66ZDWr9a\npbQMPjiADAjQVjBjOsmHg48KbyVxSSKL8G4tNZd6iyVtxwHPh7poasa+NCh+\n/d9odubuC/pvNHhfW07OflvStoJ4N/c09ZqE3zc/iiw9wbUmOKJc7/qGaFsx\nA7somdM+RGKox56pCCR+OiGCXf52zKjMGyfmXtPafEUa7wJAg7DldKOOz8gQ\nIvs29tKaeUqnt77nMJJlPtbnb6sgqzrOtcWBsGWqHCKbnGpT/GryrkdTOO7d\n6KiT\r\n=3Xeg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"383f391bde95b897d1d51aa2c98ff8869363df5f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.5_1642171940265_0.1684038458369954","host":"s3://npm-registry-packages"}},"2.3.0-feature-3f5be1-kyeixt8a":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-3f5be1-kyeixt8a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-3f5be1-kyeixt8a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1d3915d2bf038f8e4f1b35f9c910339c62a331bc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-3f5be1-kyeixt8a.tgz","fileCount":965,"integrity":"sha512-Qq47qsmWhzUFByzMOls8VIibSosIFTgYSCUyByp1CyHO/DIvWAGJ+GcQ9CcJ7ue8y+/ksTKZGi26ia0vyT84kw==","signatures":[{"sig":"MEUCIAs9Kd1nKbcLrSz7sw7q3L8N7FQ8piN6prUzC7P/iKKyAiEAq0bHUhQc7oycOCp2cgiqiVbqAOaua/HX+W3n7QY0TWE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4Y+jCRA9TVsSAnZWagAAtCoP/2JStvHlqbFsoLLadSzy\nrb9AxApNmJXUtuVmI4PiKPkudo4gZgOZhodRankhLbNdGEdsTXn9XVbar2LN\nf5RgO5yvJp1UBZX0UfBwdCPs81fcdgiUhhPyKQj+Yf6AmlujfRwwte47rMwj\nMTjxPBt5XXdaKOeZALLWzru6toQGXWSKWrC2yGOU0mIq7BJ4T0PQTfMVFlLZ\nI4n+WjgRV6aduV5IdLjR+aJQ5Z9mnD3Bqy7z/RojavllKHpUCaiCZjjsxi5w\nQwY4M9RSr/CsmgpLf0OURiDLjqoZ8RTfpm+POGTNepRheR0lj4dr9q9HQgFe\nFkM81DWhTDJngWBeAriG/G05XIIRxSMbxIXV8V3Brp5oc5hF/9JdApnjVTvT\n6rXh+reN3JebJceOKmi1DX29lzs0ks3FNSbR3E4IHV/iTCsPOm16Ew0qgsu7\nnEM5kbO2raEeP2ARtkXukzi5UTVvy3mJL1lepGHdJHO9rtgaPRO+YogKJcHh\ncMlmmmwWJ5MqtgEdgTvBz/wOCZir6Z1DW8laI6O3WgYrYh1JQyna19/FNuFR\n4yukZpBW/cvG7NZf9xQpLAZm0FFn7fFyvCVO+Mr7BZPoApQQYsIc9w2uRTyb\nH3fIKkVuMMQ+Hyu7iBQutOOz6LcV+QG6uDe1grAXCei7v9sHCOhNzFJ474AQ\nhIlo\r\n=/jyV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3f5be160776e1f183631652e5e35557be3a29e8c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-3f5be1-kyeixt8a_1642172323080_0.48887786558010493","host":"s3://npm-registry-packages"}},"2.3.0-feature-9d773a-kyeiy8f0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-9d773a-kyeiy8f0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-9d773a-kyeiy8f0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5d6bbf646932a6149df20f3b8031e912e415e5a0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-9d773a-kyeiy8f0.tgz","fileCount":965,"integrity":"sha512-W1FRAwC0H5Og9sBfJhASWCRTN6jTg3i1PV/LS8JuOnp1f8/4Ngfb5qgzoO5bEs0jN9CPc+N05evMjzYCSkM3SQ==","signatures":[{"sig":"MEUCIDW64pE8GuhMuohS3T2sdn1bCuVjwCeDARKThBrQ1IFeAiEAmvcLVSxCs4BqxLgQC0evfiS1IthwtdZqzAfpHL1bpK8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4Y+/CRA9TVsSAnZWagAAB64QAIvJ62c8UDHVDvoprrVF\n1Xr5hjQP4UgElOEa/BEPxM3iPQAgmWC9jM4sMWS/ar5UZaSOxIRb9+SlEzrZ\nv+F5UdlpJlErbbUib7p7yEjMo12iENoZWTSWCfIbi1GJqFk3UHu+sY4wa6ag\nXltB6p3Vr+4I9KunHq0HKU+51Nh3gNFJrbmTGOQHtBcZAmillfUlF6QvHjC9\nWaVmLAotN+L/AhOvKkuh4TPb7XL+b9nFbxFD5QbD38ah97Vo/yW9yap/MroE\nLECOJ9k31i0KCCtSACrUNIkxg439AsWHtj+9YQVbj6NMq8BRjswgtjxp50vZ\nkunoByxW8clSs7SnskUVZqj0VxoEa2gto0o0CciMI3AyJ3DrOqOCHfjL3Sp5\nUzarsF+HksyBjAJks6C/0zh8a4Ah9q56pfK3+i9xfDLZV0QpUYA5K3iX+AVr\ny030yTeMVqm1gcEQYjA6m3vvnc82OjFteDiPKWVybShe/w58Apf5PCyyHPPw\nj5V1OWinh/HkkAnzJ8r0qU8YEawm+46zMddhaEdCojyBCbzazVbY8Bg83pdV\ngAmB1zVFJN56W/Kr2ExSeN/nbzJpzatFTKThp0Lf2K2o4IfhBiEwMpgbjMMl\n2+D1ofjPrwv59dMPsyiznLQ5vu4s5dGsT3irHA20DYnKDZx8eXm6iHx22+kM\nmqSG\r\n=zl8b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9d773a37b09c1b2bd978e540502838149b2e726e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-9d773a-kyeiy8f0_1642172351151_0.0540298229125451","host":"s3://npm-registry-packages"}},"2.3.0-feature-37cff7-kyeiy92a":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-37cff7-kyeiy92a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-37cff7-kyeiy92a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5e9d20e5e884776cdea0f1a73ec2d8858fbf0043","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-37cff7-kyeiy92a.tgz","fileCount":965,"integrity":"sha512-4mmC+aSWg8z15Te02Nz7PUStsGSXLbnuWbLHo7ihNlrMoEnykfFBBD0m2uECe3pIqhjUIofrHoBPjIXp7hpxlA==","signatures":[{"sig":"MEQCIA3m5XrZaJeHs2ZoIQm0v/bwi9QOXREn6lNe8+NPlQS2AiAieT1DH46htXUQwQBn/Aq2dZvWt5ZHtFxL81ThU2k2Sw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4Y/ZCRA9TVsSAnZWagAANUcP/0u2oSNZgWbnbPm7Y0Zi\nMC+HO/Gv/j2i/JXzah6qrUJjIfMca/xyOfz/NsYYCKCSl1WrIwfDduIby8Ue\nthQZeMn1SeCAL++92ppfcPPp7IA4n25pqK3Gl36B88cTrzaB1eNdfmY8CwU4\nYRSOICM7eNGZjhW5YYG9Bt0/1pxGiQOFn9TW4nPwVwCHYbkdKYi8lsvRAZCy\nyjpgsb4Um/9q3cK6PC3J9d7m74M64C9GkZXjD0SpKs2ou7ep0jNq5z1j8P/1\n3ZNeHsbUbM+vQs6eI/fReJdd9zKyw54R7xDrMVPgJxh0vVT4am/dvmGBVSs2\n4v+iVwsOqWjdU23C0OaPbqzqblLiCnfzOekEWiplDBykNqWmDUtxIPIqCWdo\nCLwWasM/akQ6jWAYqIcZReHVz8PzuOa2d1V4U0SW0p4/u91BbBCqQS/5LapS\nTCtLzCiVRzqVV3zV1H7lCiAZFwP3qcyrWiJD1DLIS/NRX1foOU/DH/ZcLiyg\nGWWJG7X2YyNGwNwT/kTx3lo2zEV1nLH3iWtIfjoYhI4yA0zaPdvtQidOHfNd\nViYQTBgftEo3va/UwmoBheAjcEp30GGiR3wQZuye5ScJRsTR4dMaZnUpdQyl\n35BykWK8chODYYAUjlztyhhhGJDBHQLDFkBhO8vy7xRChMOel4LW21vabcTd\nQO2N\r\n=qZ6/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"37cff7dad5251e37052c334ce27cfd9a8baf848f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-37cff7-kyeiy92a_1642172377508_0.19781412657805375","host":"s3://npm-registry-packages"}},"2.3.0-feature-fe2573-kyjxf9u0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-fe2573-kyjxf9u0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-fe2573-kyjxf9u0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"279ca40f39a7f663aa8af2c0502c4acd3e9fa8e1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-fe2573-kyjxf9u0.tgz","fileCount":965,"integrity":"sha512-Wds3DaYmo5lSdxPc2Xy8dkyxo70Bwl9FI3ygK3rJg7vOeuROyjapXMQ7h8JeI0hdg5J2NITdZtwsrxLX9ddPPw==","signatures":[{"sig":"MEQCIAPddKIQIiTTMe/yKglqXGAeIg8ds+7qRWYn875xx8IUAiAw0Fg9u7ClRWSu1rFMoNiNaOaQe5xfgiGDbKCVo6NCpw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5ou5CRA9TVsSAnZWagAAhx0QAJ6lXeeRwucDQhL2r29k\n3xBnU7bIK5VWEEN0959OAhvXD/KY8oUuw3AJ+Z8ZZrquJ9RpVcn80owZl5vK\nnnLID74rkGCaCZKleRdg/KHxzYq7Vwy3F0GOhJxwDQ7QeDTHtTY/wiq0g1WN\n5j3ruo0hT2vVhxOOUD8Xgfp0XoHwo6lpvuztOx7N3HQHxarFNDqMKQ2LCU4h\nLWKkfvTrOHNXTHZVvvUuWn2cRI2SPHdzQGp0TA1WUCTBQs2yOOQ8jmCcFG8t\nocx/y72NmZ/5ZlhtXNKAckytpVd8NUjhIBVpzgd7GMi1XGMEmjRoGeLeD6A1\nixkewYbx0TZ0Tcp6EAgKulV6aa4Nn7F/saM1C+VrCOrztVvMZIdcdwIhjTlp\nkM9Rd3BOB+t0Z7mpLySV1LLPIEqU3CpQTSaxQPYkA64n6g5ZsCbRlo5kXIzL\nKl9KKiBIyFydeRmOzG0jT8wPJHCiPwhvSi3H8Rx6E2G3g0TzNLc76k54sqcS\nTFtvgOA6M3amIM07UUE54RbE+qduuhBnRjOPjG07Q3/0D2E6Q0vrRs0dkoV7\nv0j48Ju7Ap3XHTdKjTDdYQokVu6wQijqLQEkUvoVD7pL1vfhPbDH+Vy3IjMY\nxjklhcerR8HghFOxGYNjCQW45g26O11qtEAdRv/H58tvJGModPcAdVEhe8Vn\n3PCM\r\n=xjdq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fe2573ad79c44d2e59601a0866be61766da7cc91","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-fe2573-kyjxf9u0_1642499001640_0.7182281990259876","host":"s3://npm-registry-packages"}},"2.3.0-feature-a42fca-kyjxu20u":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-a42fca-kyjxu20u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-a42fca-kyjxu20u","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"44e3220ebd396d668d6b0a2d386caa7e491a7861","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-a42fca-kyjxu20u.tgz","fileCount":980,"integrity":"sha512-cGb8NJ52bV1x3xqQAvRaIWqSk7Tg3HtsXvoiz6A+PPDSBhH5v/26TfDrLCaf15CFthC86jsxsaa1Y0DsxHfNGg==","signatures":[{"sig":"MEUCIHnsScbRDMDTdYnGMu09CaTHAW/c28QrsD1TV0KaM/hqAiEAlWGP/3HeJH58uiBkYz+bl7t4Rpc8Pia8Nqi6vQhDurc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5o5eCRA9TVsSAnZWagAAH0oP/0Lrj6UcjKhvgnef1nAO\nV2Pj5+E4iQbfh0IgICAI9WmqWZ7Dg5U0O27zbyv7F/83OxBcHb1Kb5ABXZyx\nddoog4Bcl+TLTzjsglwjPLX/IjZR6ow+DBBXeb3uUA30nqVRZmoBxvxY8Tka\nztE2qf143boEdgalyPyxpqY/fpQI3ojMcwfzPpNRRHKFZG5zP8VH1lXpA0P6\nsZrcslC4j70DiLS2lMLLu7pekgS3+pYO6dKWNTWjMdJaf3gXAdhTsusruk1s\nevaXUZZzgGEJhL+aWApaisOzRN075vhA05kVhK9r8+Ak4Bbgg+1x9TiyTcIc\nBwmIoyIeteaU3robU/UrMEoP/rIqxf8hbF6mSASpLZRKVicrpLBjmIsxcg9p\nky3dWdveZ5AIuC8bzVFcim9sOnjeXQAVjYUHnsGSVPjYa+7zTOFM7MsTFHUv\n93tEdJN5T+5r2iFEdPNnZQvuzxpvzmQqEhHw01pF1uemSahpQJXR7z7AghJY\n8+K7MgWwboLfrW8GlbGwtPCuhZ7u9aVKFDMd629khNM/zxNIo1vyvzkLiYMG\npXOJbrno1EUPFwkZ8qC5blG5XnU7ENBvj1r0/hLugFoyccvlPe1Teho6CgV+\nKDh1okMVKCk81hIZ71O295UUzm3W5PYXmn+uqYylQTfW23YKD/6n46umK7Rz\nWApj\r\n=iWVd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a42fcad6dbe19b194f22837d030f134b352ce39b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-a42fca-kyjxu20u_1642499677549_0.9242010084466716","host":"s3://npm-registry-packages"}},"2.3.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f72acdd096c4babb4deae65666c49812b275c40a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.6.tgz","fileCount":965,"integrity":"sha512-FmYpsz9C8dl2B1peyvwYQBmLVVfVwWBfJhn2tnzKYoUUk6J4OJQ1Dt+VsCsMf44V+Yzi9HsLI3luhnFpWz0EzQ==","signatures":[{"sig":"MEUCIQC/QpvBhcZq0f0NhsGbe1uQR8mkk/b3/WwdoUIUOZlBKwIgVbyncL57j+6HjT10e5+3iN+6zCsVaWaIJlBhjsZ/kYk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1645328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6BhACRA9TVsSAnZWagAAMSsP/3kxKPVbr53/AjSYljRL\nQoSGOHSbytXJ/iM8f+5Az2frIHuKiDJtFRszX0fIxNlgKSX7q3v18woSa+/I\nkxY3JWKntpIkxIACQC8OfJ15YEyv7tqexGafURnieNwzuSu/Qn92PgJ7H9L3\n4yVLsKAyCr/lyKN4GksbD6lLusa3AC02of31KuH2YPTIJNwgQK0jlLdMAGOr\nyCCEFonh7eCbtU2BFCI82z9tMkrfp4TysotqU0IXS/F9smhTKALAMTX51Xj1\nVVSx5t3SM++LSV6yWFN7O9WGn3JMb1bKFNi1WlBS50Of0OdfXg9h8iZFY1/1\nosOhqbZxkZQoPbXrEfI845fjJmXYhGTGPQKuu2rfIfz/y/zjkAMxyyhUunwl\nQPxVk+bkP2dUUTNlfQuXk/NTn7Eul6IMQOGckfFBQ/uavDCeIznyemRwhKvg\nZq5GpQdUpkLFyBbpABM+PexE3jS46rdwc/KZe/3ZjsRtAhX8teS1wwrU9IR5\nY8tPrs2eLPurala/Fhbz84Pp4d/MM1pkn2ieTmSiV6keqCw05jyDEcCN5qal\n0rcKW6YJlTWrVuCOo4EctBftZCqPNqjUo4aDxI3DqMce03ERd/eiinNDmSC+\n4D5Mk+jVcg/6yZEPHQfmgW4VtgMsAWv0EkTr+yHgJw2xtHD6k3ChQU1NhG/J\nckIm\r\n=PHW3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e15a2fe9e15649f4f18ddc27864f57b1c9f2d235","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.6_1642600512050_0.9816202241795275","host":"s3://npm-registry-packages"}},"2.3.0-feature-47de03-kylm15ya":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-47de03-kylm15ya","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-47de03-kylm15ya","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"823cb0332ae8d93140c70e70b6623e34de71ca1f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-47de03-kylm15ya.tgz","fileCount":965,"integrity":"sha512-dVl7LPYz/PUn3NCKk2EG+p/frzhmW5O+YdLdC9ABDdW1QHHhorTcSr9UU/9pPyMZHu23Pu83a9gIzb4PJ3yISA==","signatures":[{"sig":"MEYCIQDa94bS9BkOp15/umr8BBxjkQhs99VlKzU6vpXU79jNVwIhANW2t3d8Dx5vveLtcrCKPF1XWUEDUIcOl6+c3jCkShsW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6BlfCRA9TVsSAnZWagAAcbYQAI0QadOwXsvPAuzRTeim\nHJ4aL/Qh6O8gYBZBOMtsD446W3TuFOGj82/EEkuVZTYZA7oXW8OdFeGiAAgb\nlQdYAV9HjBnckknNR+XF4AgkIjUxN/2tJux7PT5x7ALcIsyV8I/9v6Z2I7Bq\nEePKh//evCG5J0s0AXmu1PWfNrMdjt7kExteOHnvaXE2AQBpkj0dHcwkeEzp\ngX/NyLQXnWlcpD+OmhYs16CvI39D9XEUYEYy0DNPNZr81zu2dCCfN3L301QE\nCwIxiRq6JzpPwUT26ejBDXJ3NbBiRFaajMq2CnyfTUsp4UGLmPZkrgFx/tuk\nh8vPreDuYXiLuAitibRC2i9teHzgpSQmOhLsPF/S65Nd1sHOL3bqsxCn4qeC\nDfbpA6H6D8TonC89FeTvyZZskI1uHLIjz8IQbmSbNtImXoS3L1xO+QD13MD6\nPjoCn4zM2Kd8W+1XK7qDpNta8X2/vmF/oyPM+uFbglOmNnBBckGXp6sLt2sg\nIAtrT7OweYCUxLiR49g34oo9H+/CvRxR6lEG3B49IuQZOGxsMCTzQIfKsaEV\nyJ1fqk1K4Cg8hUxuwWueNk8bBXVPiVd9OD5ky+kpvy/i2kDZu/o6ubX3DxFq\nEspXCLMgi6ijYE0r8qte1EGG39CmiPsn7UN6L+/DpiNsnXPDFB4WTfR2oVuc\nRXy1\r\n=1iHH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"47de035052064767cf2af8b132167d1dc138cb88","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-47de03-kylm15ya_1642600799140_0.059983313028346474","host":"s3://npm-registry-packages"}},"2.3.0-feature-df0312-kylm1e20":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-df0312-kylm1e20","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-df0312-kylm1e20","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"afb2b43cd2eb3ccd51e2c87f9fb144718cc80391","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-df0312-kylm1e20.tgz","fileCount":965,"integrity":"sha512-nd6Wlf0TrxBcA+MptNqyivhy/5dFuh8dz9Nqt3dJvQZjBs9SKqWEVUE1f9TU+4pAVk8j0FEv0kjqO7pAqMoFOg==","signatures":[{"sig":"MEUCIQDnZS0+HQEu3Toa7CV1j+leSxpe/wX8vmMWl+LcVbbShwIgALCnwBipNAJAQ5qeVBlTwt1lhKGxn06W4qZIBYBvKgs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6BluCRA9TVsSAnZWagAAdJ0QAIJj3wdtd8CXqsIv49AQ\nJrj94QBxhXW1+z1CGHdWNZnoX5LRJwbyGhR0Rcj/AIa+c41qe/UzGgrACH6a\n0hEdPExu2VxLBQQCqqGQjY4CU9ee0qg0A9pEQ1h6OhqW6jhi6tfE4yuuZ4fO\n+YutM/H9mTruIgcgr3g7mnQHn9k+cOQwehqAp2AxxIf9h1nfXO9Uf9ukOTOc\n/1MnBGS9fpABBw1AFMHSAkViFJCW0hMC6BOY5nHD01kxaaCSURDbN7Okud1y\n+Bg4f8qn2VB7p372YHz10CUaK5qmOSZDYgGUEsDH4DhfqbLVFQx3V1KqpfGl\n9+7FUJLGOwPPmL0bbWU6pJi/QkWn7bbOScxr6Xna8HT78C1cdQCPf/crGwHR\n1f1qXrGGdGxeRPmTRslSbtiDnUWyK8492OLiPX3zySXcZU2q2GXjv8YA4tww\nTz5VjY58vy3yBM+u+fGAt6Hz3nSptYyiLG6TN/cqQQzMNoxYflY0guDp+wip\n7ZQmiPP+AEl94M+ofm6FEdcVCZIv3WnjhN2ExCAAU3j0piFvd7SKBaS3mvFp\nzTgZgW6PJ25fvpQHWuBvnVlN29Pe5w8SbPkAUFA9WcA9r5VxOniUT0nZPyvx\nogl03Aq5otIC+dKpSstR3uW+DO/+wxA/jcf4184XsgH+YO5CbCdhcDBPPOwA\n+GzD\r\n=fwgW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"df0312deab340130221f28a4f5ffc04fce820bac","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-df0312-kylm1e20_1642600814341_0.9657414319274544","host":"s3://npm-registry-packages"}},"2.3.0-feature-2413d5-kymuzn3m":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-2413d5-kymuzn3m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-2413d5-kymuzn3m","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6a30c8b9407e4991b15e70ff1af8494cf0768f16","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-2413d5-kymuzn3m.tgz","fileCount":980,"integrity":"sha512-JNVFoVJqMwL3R3dpdnhbkVFJQNTN2XjkFnNmPqwq5hCrELZ/41Ag5iQQ76bTvy5GT7bBf8e8O27UpDgKNBtByw==","signatures":[{"sig":"MEUCIQCuInjj76p8tJs+J0rLcNSiJpADkhcKRAu1JeX2OY7YvQIgF6OrhanKbX6gHmvyMOf/PjBUqZtHyEgac3TwewK5vho=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653490,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6UBECRA9TVsSAnZWagAAFSMP/0onUadt2oXJ+Sx3z8oF\nw98hOFJcjre1R4NjWD1IXiLzD95F3LVrIJPG2TAaKudEH2y+03YOdxX8MNlx\nyHixc422qpXmIRrxiYONHhAX6oQzBtMRSiLwjzgSA6A6sQdapGHl8/+1x1Rp\npkXaNSHPA1rKp8bgWMVN6GgOJl8+YkzuxfGDDgwFDKn82zD2/990tWy1LKb5\naXEMf0WN/P1psf1BmCj2nL2+dwdlGPRvGJYgpTbpSMm0jsNZtNQUb+ECdvgB\nFAqtmcuIQBgQ1ZZDnSh5Bc46bl53vXg3d5qG0bUsaHaGjgskOWeAPgjfKo6N\nKjKuC0cKEqt4WcUw+elUt5z8uIdhi8mgFbx0s+CSUh6vL0QVWV/8Z8xIze8M\nozBMLAwBN9z5AuZAI2Dm/7QUeBkjX2K3gRdRsnAEk1JBDqpFl05O/AQOWT7+\nL852SVGshtgDNr6NGvHfYvOHmSQOg8ObS2sc5EdMCQMdOH/9tKFkMfCKCKvN\nAnVFXqehEVCQx/2vKOCRbuRi0o/CT7kFIqUS2fvly/Yl48ibFO5t4EQ4vgwS\nmFPKDXsDoVRH6ca6ixfhCoBN6jUka4e4JjMapYIWrp/AehvZ5iL8lNW8b4b0\nF3WvFU7KGAC5XPd8Wl2XTN3jPOT9fjiC5CxSPrED/Du/Y6quK14ETEz5sJst\nE6Y9\r\n=LPcb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2413d5b8258f06ccc8b1fee1a34a10c5c9611f17","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-2413d5-kymuzn3m_1642676292735_0.02896199627258822","host":"s3://npm-registry-packages"}},"2.3.0-feature-f04dd2-kymzppae":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-f04dd2-kymzppae","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-f04dd2-kymzppae","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5bb15a04608d421162695ce8f219900c13ad6cef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-f04dd2-kymzppae.tgz","fileCount":965,"integrity":"sha512-+kkYcyQAuU/gjQH3kZq0tdyq/f0mgPEU+sGDcGcuCovINzISkkfDLxF/bbEODerG80oW72qsdWRF77PR8TbxhA==","signatures":[{"sig":"MEQCICWRVLaFao5R7K6o/eFL0qnAxaZ5vXGjaMaqd/pgoQSIAiBGvYnnz4DlSNSHxv293qx7Lp0s0hE2U7cRpLCEegYe4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6V9kCRA9TVsSAnZWagAA9skP/jjok1cJA4N0Fp7W64Rv\nn4Qt4qBiuTangZglmgdYGla/hTPqY4ky+DYCQQ++mcrC5HpfUUzoUlNMXR/g\n285C9BvRVP0QBeO/ZyxAbUhI1u8O13ZB6RznmjDOLS3majPdBbzrFE1UCC8j\n0P55/+o4MA7hCZesOxxwQ+Ugadrhctk62PQh4kpKoPqAAUY8H1Tpe8xefW/K\nPQDI8PX5rI1QH5OQ8oqccm+1S70FCi5ZItyrtiu6ZTwXGnYZ1cl9Jsi1S2kq\nrt6j+JWwFKI9PIBWA588oVZxnOKPTrTPlSUkyq5XIpOcY59w3CiWALE8kWxH\nkXlHOcYP1cSiXtcKl95fIM3cT+tFu5g8Mx6nOyMQUr49QxsPywd7l+3VT61E\nwttn728fXBqJvpxeUNMFj/gtjxvcHpxhkzTGq644dVLUUtVvTnntoZPPTZmn\nIvQqx6MkW1vTUr5wkeSbXs+iL4+omGc4mBxtDku2/suh5kweB4A7jEBJiaM8\nsypwnR8JtZBEc+xumSLc+25vNqJsYjhWdGEc1Gl3qMNoESlw0h8giidM3dNe\ni9l7iwvx1ilBtyd+n4T/fJNv5Hchn5m0FpeEcBJTnZAVFXMj0nTOjlEp3nf9\nqvVop4ODZbtZ64sRrPcrTEbOo2A9i3UjffOh4KnzzlX7UgsPpCLsRGZZZQLu\nNat+\r\n=puUe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f04dd2bcfbd9ebc067924b2b8cf4690d729100eb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-f04dd2-kymzppae_1642684260763_0.1473677045918429","host":"s3://npm-registry-packages"}},"2.3.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ad9ed58dbfa62801314327e37102812186cf5167","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.7.tgz","fileCount":965,"integrity":"sha512-CLagJ6ns9ilXNlPZ/6eDyE16rsHuEApeOYxSxHctw4tcPd+mGs2+HgVioN5yEr/n1qUUF/Wyb1HC8KNbwvxDRw==","signatures":[{"sig":"MEYCIQD1eE1BfqjMfbxbGQc0VLMA+oBxu0FUL0De0IMv+BojDgIhALxxeRBvxhKWQhjcGSZx1gg0p8Dc7lxvlISgGXRZN8jV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1650413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6V+PCRA9TVsSAnZWagAAmfYP/Ri5NHC08ZOAwMtsTKyD\nTjNGVsLIoeFVhbWaLBiCdJziVk46T/BQ4FzI0UsE7r+P/D7QRiREGwa35tC0\n4JYJ3TfV7rlSfrOp6nsiklH1qd2tk8uGjfe1ICbPKUkZGi7ejL493FX0Wc9C\nvd+GfEtvVBlYKhvIU7Z41L54MJ3zPJbhY9IpGxRyPtF0+sJjGf4599zTCSFg\nlSZ4eRuXpse2e3whqwhhI2LTjfde8RnzOgWqp8i6gM9KoLlBkK7RZNJIqJUH\n7UMZASmXFWnaU+DTXlahhZi5CPDAOc13VlDYy9UhB8Sgk5YGZQRj/wQbwoUp\nnqA+te7aihmcA/u4pUs/+UuSiN0xkDJYihCXRUiUfMWWiHEh0PHdgH933Lj2\nTkuQ/llpwCpP1ZRQgf2orXhLhu8yTI1gMk4m4MpijgvKcXU//PBzGEoDjqtm\nt/yogHoWl9Gnbj9IHXL2LBDiLySGkMLV7M0bFWnGC8+FAESsI5Y/1Azm+Ig1\nIJX6dTn+hoeYPT2+KhodBjecg8xIPC4XumljhD7NZUouY+1NyX+sst/KbxIn\nXJNlDv8VtLy7AACqqQF+GkaOU/MwPwK6+ATwxTcvqZXAFblR+H9zeemgLbeo\nBwmtNRB/JHJnqxlG5gr0VCGlOKy/+nnifQ8bJq54YBkGcswz4Dm2vY5h+lyb\n92oS\r\n=YKq0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c1ee9db395e429ee37f1859ab91ddebe392ba028","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.7_1642684302673_0.47860455255116596","host":"s3://npm-registry-packages"}},"2.3.0-feature-9412e2-kymzvnm0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-9412e2-kymzvnm0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-9412e2-kymzvnm0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"da636c8d73116ef1d012e8d0584041be0be96d0a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-9412e2-kymzvnm0.tgz","fileCount":965,"integrity":"sha512-2AddYyolhuSNEoS+Klt9mAMwBahrswWuxfCn6vDM/22y2EzCDIqFjnDSVJ2X05E9HzSBb3o+R9a4iTdk0xooiw==","signatures":[{"sig":"MEYCIQDJhnFLOvdaQlfLM3iAvoWwFG57IWjCOtdUyl02LLFrDQIhANycDGkOBLWrzkebrPtQLbdIwQU9c+4pazpogFD57rQP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1656094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6WBZCRA9TVsSAnZWagAABw8P/1ylA4l8XvV56YIZsTCA\nzCKXpzMc/gyUwnrEOG0Vb8n+tOm+oHbhaMnVgUVM1y/O9o/U0Y1aOvEN+pxc\nVZRgwNd5eaVNNyb7df/eroznELe8lWFdGYw+dchhxiwuyGhMR+T5GP1pjviG\nev3HAI9cUSmTVCBmEwfie0/jjXtOjHE/hr5BvzMsfyfanLFw9Ft30AM9isUD\nRGJEQxWhznE1HqOSTRgE8Y3QqsydgTRaqPxrL1oqczh91f5XD8aVsO5RNHss\n9fxyKZvfaWQximqnDh0e7WoMbFmhYuLhzB/JI1tJs73VX9ZQcg3qmunpFgsB\ncgxNNGN+2Gcg3SxzHxdzoDgBeY4HIbvOEW2tSH5ZX8KT+wR2FJeb871fn/At\nT4KF3N5juglgmYcztuSQ06mKdSVnIp4FKJqmonrWWCT0Ma83jKmU0UIhtVJE\ncasf4/nTrkWtTDwsj5A88fpjJwvM5SUAPeFnAWLOebdCRFC80NjoP/Dkri7V\n4Y6wgHV4u8wlHmEs5qes5w3pERhZT7jpYbaKNJQSggYXkSeRwFI7HjJac+TY\n9gOuGX3TFN31zmo2l8G7YXCl9jEkI66sdfxPjXJvzoLnzCnGHNHGH56glvUG\nnY8BvjgdSKzjK5PEEP0hFfEuSrHIWrNN9FgCfqmGp5+bdjNZ8+rQKj5J38UK\nTJj/\r\n=g9Ht\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9412e26c21fd157dd213f8cf40215f9d5d7f333a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-9412e2-kymzvnm0_1642684504933_0.9193739156882401","host":"s3://npm-registry-packages"}},"2.3.0-feature-a42fca-kyo9qvzq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-a42fca-kyo9qvzq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-a42fca-kyo9qvzq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"527ef931e2a8ecff0a6bd8333589becc29cdc2c4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-a42fca-kyo9qvzq.tgz","fileCount":980,"integrity":"sha512-JDMii2UXNCRSbySTpiNp0AzrxANRbWK8J5/st8N4uen6MlFUhCTitPbr5h9jjYs+0Eo4Wh88LWNZFkxTRRCF7A==","signatures":[{"sig":"MEYCIQD1HbKYja6sk1bD3CT5tIkTZn46cToqMdSwc8N1tiE2gAIhAKpozzPVZorYRhFiCtj++9U42q+q9vn/9ldZhD1+pspa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6o1SCRA9TVsSAnZWagAAIS0P/RSW+bdYMaob9dgVyADi\nN6GuJr/ukousx86eJ3Fy6rmVAzL0iUihsG6KFX6/s1WqEMUfNjmRNKdmSZEP\nxGEAsdA1I6c5lz+Cwe98bgitdzBJNDkmwUlFxldrR7CGHBRS6p1AkQ0BL5nz\nRnh75PXQ+QB8uAnriA35cC1zP0orf59w18ge0KsuIgC2fgAr0c27qFRu75ON\nOJ6+47UzgpWZu1HaW2dZlJQhXPIIZHAtrOTcAlB4wxxKJlQuf8fhEZDlqix3\nKnn31nuryJuxdKWBrze7/dRz/QO0ImzkqOI0ayvXPKu3x21CqQuZmkEoXZun\n7gaA3IAh5CLq+qQ+YQF+dTnog+s0Y5fitzKTpdRQbueGDuJuAk2Vx9/j5ITt\nGG4Y57IVxpLYEntCNbXfxD63OyLLPycw7/KsAm1T1kXwWxcN4Av5BVBXUAtv\nQmt8IQyo4PkbmDQvmwXKUB7SQl8R4R4Kv1RsI6cLqogjMUKxpgvKFVOVqVhu\nuXPF5vD2o4wwx08sTaSoRTZwQHvwxrAOPv7EQAAxKhqI0HRQDVR3iQfYpwbS\n4hs8KxEjPkCTIM3U3SSiCYJXhAyhlDNnU/HA1H9oEhfkEdHN5fxms4FztijT\nWZOQ7RZ/XOn4U4vvWGrr+6VEGosqEl5psqPhV8YPlC7xrvzNk2pQHrt7LtSH\nzt2E\r\n=Q8/l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a42fcad6dbe19b194f22837d030f134b352ce39b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-a42fca-kyo9qvzq_1642761554044_0.7932724592008578","host":"s3://npm-registry-packages"}},"2.3.0-feature-5915b9-kyoinikt":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-5915b9-kyoinikt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-5915b9-kyoinikt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ec7e5083e2137af2162fa44d7f1829ea0a91985","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-5915b9-kyoinikt.tgz","fileCount":970,"integrity":"sha512-b/OXWiDFEiHr6r7ba+19/e2GNRLdcKbDsAc0pj5na8PU317qYS9GOHLqzXK0vNk1jPpeWveHDJwDf/bHVZZsQQ==","signatures":[{"sig":"MEUCIG96KzojG/PHqhnZSunBaM0pRFNAfe2CTGi/tNW/peOgAiEA92VY20DjyfzHobpSqIbHsgchxioh0pmBBYUY+xKj6+s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6sfoCRA9TVsSAnZWagAAbmEQAJ3O4k0X1lRoED0WGuLq\nfd9ZjYQr7tUC6932F7BZVDfEOz/A4oIB1xdRmSPHQVXS1XxwFdivD7eXDXpf\n8PFzdIWvxFVkmiMKB10BOO6dzFXOaVi0G44R9FXgHRDg5hLk3IHf0wF8R6AR\nc+SFL7QSDAxpj+ZA5UYw+0L1fzYsObkMEtJJPfSZAbUTSbHHe4CesaUKXEtN\nxTYJRBz7MZR1ppM5GHsmZPAApATsJBZh/H5o5T0s4XYUaueoqO6ToIA9KPjl\ni5CJ2ad4wcEjAFgHZNByxVuDcRvUqb84PhgC4K0ur5O39kdMSh0U6lN7V3yr\nW+9IEvS3vSom32dXpvLcp/XGKZr1QrL27gnS/0fkXRk5TtUVkB+IIyX/dxFC\nQxA7rN0+NUwpP5DEqcxKb39NaOQjDNdfBW9FLMVwXSMPoEE37pZUorY8xbGl\nKMxYKEfIYE5uv8bb+NbVmp6vbXbRL+JFNeiHk4r33C7qogelvbviSQk/di4r\nfOISrNnmJL+l+1GOAiT/F9cYSMcAvFs7HDktTSi2lshBn9YJU56x5E8Fq0oc\nafdELFI9TyHRW+KJaIsFccFlSHrvwGkFy3KXFvXwXjbmx5xNDXh5ywkhuE/Y\nOic2FtBnr73cbl56PBRz2yZDQ68mVPQVVKpKbs0PlA1YKdyOn7HYDFW/xYUC\nyArn\r\n=3xUt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5915b9249fbedd52549d553f7de5762cc86f7f85","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-5915b9-kyoinikt_1642776551872_0.043664935669169846","host":"s3://npm-registry-packages"}},"2.3.0-feature-806469-kysts2jh":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-806469-kysts2jh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-806469-kysts2jh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a7a2d93eac6584342bdac99ef959f0aa147829dc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-806469-kysts2jh.tgz","fileCount":980,"integrity":"sha512-sugcK1jBMxZEZ9mM2ogMWhucIZkOimy6F44JQbK8Y9yP5fI6oSHyeLdwnPDDGdhDx3EW6itkSkYbColSEdCTqw==","signatures":[{"sig":"MEUCICJrV8b8vvDU9PmuyXkpbaY5tgQJFsoBir4wO75dnN4yAiEAuc5UEFUxjmIbtx+FThNr1QKhg/lrd8Vi3dB2zJO+49A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7sGeCRA9TVsSAnZWagAAcmoP/jzQioxER75hq+eC0mj1\n51LqK+P/Vn1WIAa4veG9ns1RmLdMBlLTQvGTjUUNtI0RlkfCMlsMNiOj3A2G\nhQ3V9IaYri7qwru/0iX3spbhs5FJlCcMYL2mIMP8wfTSMvbG6+Xjb+XPYYAm\nv9eiernFXn4NKo6Mm6LYiLliOFO/6JanNNEdgPVbw/28ibe67E+j4XRwr+ED\nFopq8y4hT7aV/bHhu9Xxmh2vk+uvPgJoFh9Gkw1zNyVKrPfJLUUAnqHDM0oi\nsNUBvlld0RU2Xny3ZA2mBJVM1oW7Kf1sgwEGYOHZjKTca1RftSe/IiAp9xPj\nQtSgxp5+SOcmjA4DEVEtWrOXdwWo+XWHxXZUguLo+h9KhVI9NJrJRIqypfcS\nn3m2pyGm7p2yHsizVTL0BvvTqdXqXgGPRFG0EQ/vdF2A8yHC9/rNGXEr3frP\neLZLvr4t8oBwJVUbQggMDRYrL+zMN6NmDeMk9RWMrAK/NFSKthROwlUGobQL\nh6znsTw5kjge7p8Wbg8gJvjbl/V+mQEFDOBPng3tr/Aeo5Nyq1Vt8YgouKQG\nQ5eGwtCWZJD5xWyvNmU1r+Ssk5V/Pc1jwDaASIij0UZkv5H3ZcIEQEPTsA4Z\n53fj8t/ZqdT5/vCrMlRl0B0Tp35RBU7txU2pvIBVUjpTnYN9rFXArWPm022m\nYz0T\r\n=HNmb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"806469dfb2f04cf797f9b1c10039b93b4110e20a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-806469-kysts2jh_1643037085698_0.4028435483797428","host":"s3://npm-registry-packages"}},"2.3.0-feature-d4c0f3-kyu4jh03":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-d4c0f3-kyu4jh03","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-d4c0f3-kyu4jh03","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"431066f55deaef77537324a26d3c39de7a30fd63","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-d4c0f3-kyu4jh03.tgz","fileCount":980,"integrity":"sha512-SQ/6NBZPtxCx2OT6y6+afyAPx+zUDkQgP0qElAY7m5B9nlRiFgV2DaAE8oo3rDaePelrBjqIR+odW/cMFvX4fA==","signatures":[{"sig":"MEUCIQDovWQkrPeVh3Wi4tJ4QInKdQ9ZP97JM0JcoD7lXrV/MwIgDHKYuylQf1pMAc+JRyjlSmPGhRDLY3ej+xSuiUdUVXE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1658267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7/RXCRA9TVsSAnZWagAAxgUP/j65+pVHRR7whbpbN8fv\n/9CYHH0NM7Sj8r4bQVTD5DykNNVS8ZZwxU5y5B29N6cHvz3de3GKSWIdmGis\nb28uqGAegM2mbg06zUKWmwGZoAQViO3JKoHvUk+WbN9xrWqZbVF3gW3XIYt3\n4teiGox97OkAKTMx4p2R5vGEBRUwBRYUKQZGMYBCX5ACjRFp0Yh4R86Tc1ll\n1D7oL9eN05mY8746VfWGS/E0f/pfzd3xuOR3OOzX6DKhPaZ4pKOVyEIENeep\nToB5g+GctTJG9CJDFlJ7Tebkop2R5yQlUeICHHz6XydhucXveLQmhL3Iunfy\nM/dapp2DbVR8SKuC2uQSycoFFb27DBwPHOPlwzb90Jc2qETLohZjpFmJMndm\nxadU8NR7iuuIrBlWgiNaJVk1B0kWE2qJJ+M7nwOJq8LiRNHxAku1/XY58z9s\n95ealS3w14rYrdUyNrX5WqmNLYND7RK9JrvHdQokq/8Q4zt0r6EzSrwC+I/5\nIgY4KorLh7Pu6M3IsQPIDmmuLjMl5rfC8ak9F+j2WZm/y6vGc4wOTqHrw9hk\nGstGaD0IbQZjUtqNmr43m8bsrlFP9Oskj57KW2iC10WbNQtCY3q9O0Md+zjG\n11kEzbaq9gT0SkUqgFbcx6gPIyByEQSPPXmKTHG7PYrQ5CLXM4K4e9Ea/YkH\nSu43\r\n=xL6D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d4c0f3300cc48c849f42c3de1ffeadbd944fbb71","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-d4c0f3-kyu4jh03_1643115606816_0.19367085928356342","host":"s3://npm-registry-packages"}},"2.3.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ed77dda6627efbfa6ca37c1b23d2d0c3ba0db6eb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.8.tgz","fileCount":970,"integrity":"sha512-T4TVjeLixO4n8Rc32S/TFuiMfHRgZ7aSoPfL5rc8/B8a3lASPMaWstPrOWpjKt23JLsbGwFfsyEH2j1ZicGXFg==","signatures":[{"sig":"MEUCIDJN/DZFOOEb0P8QxxoNVcDB3X27udX8sH3ra9pRPLQWAiEAgQ6LQH5KInPnHnc/ucA5iCubTEarBWfAi92azIrwdtw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8CWsCRA9TVsSAnZWagAAcEAP/07o+Jqr11yZv8WCZzBg\nnliAZV3E5qpP+0iOcAb+DnKj2Rx5PU1xtBP2qNbdNzTjLQ8vDyOfz9AJLLNF\nzYQyCFIUi0UOivT46W5YFMlYZbgsSgKkUGVqqxTSL2bvOd8xEbab9C7uuNdI\nQIp8qVznitQkVoQ7PMhFk6aTyL6iPc/Vt0pLvcRKt3NxWKj2DbN2/ApfEZDo\n7lDQ26hd3pCUG9do5xCnsGNruKrCaeF6iNEga7fySzBvy5F9GYGj59Fr6mrO\nvFPb4VQQtr+r8XR4+bBuY6z9z7HwiILMJfFQ2tKPFMY318JxviVAsU05TbX7\n3K+waId8wb0cVkHMFVk6CAG97J4zYmfi0Vp3ERM5pKQ0btWEB6wEZV6hH4aN\nUUSkAC/P1gOwDAL9TjouUINPyhQ80Wb2XjtR778vWXWOKo0eKsnTOsan61KR\n9IzqhUUu+IpvZLMyE/i8vuDBYxWtqMQn+VA77iUgtHQk2+12WejBxPwoePvF\nf3sbDflsy30gekQ9KZJ2yXOj17h/Cn8hAwkND4ezicitlf1g5cv5cyOcJpMA\nK1JNA7GFbQexIKpSX4jJE1XE5WWAlEUNRF0N21SDF6yuwR8BaPzjsDPanHjw\nZdulXG60KZiKpArcSwitqClZ97xYhBCRsYqnpexBNcFSgrR3aYpqc6xBwogW\n0VbD\r\n=w2cN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ae6043e88dc173e10ce74f3ae45f7a68ca163941","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.8_1643128236671_0.8028187840612935","host":"s3://npm-registry-packages"}},"2.3.0-feature-579e9a-kyvlljxs":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-579e9a-kyvlljxs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-579e9a-kyvlljxs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d888a727c58b177b782d49389584b62d6c6badff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-579e9a-kyvlljxs.tgz","fileCount":985,"integrity":"sha512-J7ke96vKaVmNLl8EZKAlBPAt9tkpJReDNUHM/khSMIILvjUck4hZoWsZw7K0r8IrSfLYts/VMv0IPqbTctaOJg==","signatures":[{"sig":"MEYCIQC0ee6JBPNehHNoYMajVFjOWo5ChO8ExuklJuvf35oq/AIhAKH4cVVwXEP4ILnA0/XpvfLhnycSTntMNrAfj0Q3JjiF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1659531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8VB0CRA9TVsSAnZWagAAopkP/A4Pl2cbg6LiH7EZIwxj\nsR6o7l3wJF3kn/HPJ2qSYCoEJ30xjSHJapWijoDFXt81ELrtKlgqTR7WIanR\n7Mr4/sI+RQI5kLjyf0QQGMdAVqTDzoZZkeE/Hxq1/Y6znuQXCl5GWStGoUzO\nilndJXLyd4J0hnS+pqqtFwBbuqfoj7Y/Pp6IBdOYdJ+tDqkYFAT0Al0XTflK\nOQzsjjy9XV81LxJjuEpvgB9Ob3MDd/OMBOYrc9DbXuJFJwYWP+8o6Mm80jQY\nEOcQwuUdVq7K4JH8I1j3a3bAMULDo2r3M4cX7ozQ/J1+SzOWyu+h42q0Oz88\nWny1M5C3g2ErGVi4vX/k7OLpK+Rqzs1hGYk33cCwYMri8vgYDOpP6GY/Bo3m\n1oV9IRWrxJfsERFRFZTtyIKJINETECA2dwE/ESx8FEZtjNcHkRlx4LxK118B\nfBo6zkgJomseNM56tvMMZjoQjiAqeqTQ2w51I1Sk3aAqAgfnVypAxVZignuk\nakmZkTdwyTcHGiItXvm4B06C21dzH2QAp6jJG0HwHcx84nBPGkDFfAs0LXeK\nfW8fip5UgeHp07TbC4+MXcrFVGN4h4gMiOaCU35gCdibSTaDOxqPQCzlbJFL\nrVFRm8VNjP5pxkOyDSVAqIP0CAoJ/4+H2Ra4ijJ6u+ugAe1btBkv7gFzg5CT\nGZ/k\r\n=O3lH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"579e9a4c6e470c8a8d685c4759138f6d87135ff5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-579e9a-kyvlljxs_1643204724352_0.2253940646589918","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.2.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.2.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1f1cdc6f577f1b2427f155dda128dba8d1a3b2c2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.2.0.tgz","fileCount":965,"integrity":"sha512-rYnhL8VRX9DK6A0gwndYj2Up/9PgnRt49QBT+jRkr2OfZrGRO3VgoBWmWm2Da8w7AjPVH9VSICah+73dcV1Cyg==","signatures":[{"sig":"MEQCIBd001WTlBpmcH55N5m26acErAOBxnTDRleXN59PmGrgAiBSzgrlJB8U7YGQhL91V90ZVTjmv2RBtJfhADrWuhaCrA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1636836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+oPyCRA9TVsSAnZWagAAS6cP/jMeogr2lLEhgu0PKppw\n4CjhUCWV3Eg2It8AYgCr8Gtc/FmULX5Duj/IQ0zibj85PIGyUgqtmAgOYXdP\n6xjgWDcTy8l2dlPO6wCwRhkMwB6p5sn2J8SPKJ1F/1oNXoSFieAXREfoJpID\nVJYDmY5sfiKGFnbJLZX7NRsULtdhZ/EpNa7/dGWg4lUXQhxEU59tPr8EUfvE\n9i94Y5HD5ogP7HmE9TRD7V7kIjV3DA/j3Gg24W4b048F4S+P3yGEcPHgDQ4O\ny442nrXewXUnEaaZBFZstKcP/pmlg3nwGyeZeJkaazQQec0H7ZsQ5KLv8/GX\nlUtIgJLFqNUIaloLnvPdIN+rlYnENaxhSuYwIvzvKKsYo6ORYJHvtpYBMH12\n+tENeHnvKEIwh5pikcmRs0zlq48pgitTV+XWeBtg/YR/HHz9ixMuhFKN0Kas\nTZ+ss6TYT3loQc4/XZvZYQ7XUgxLoWYjqX4wZhk9nMXQUgdgdXP0wwWYgo3X\ntyxFNFKm6wPoZVaUWB+IIrl+kAiNPiTYurcGfQMzI1ykr75DzJflOFvQ6c1S\nE8Q3DeM5+K9mCElK/1MvEpjSh+FZS6aGXitMalTCDYOZG1MVc5kD9Ul2BYP7\nBii2dWmAF/3KEu4Mhyu48oIR29POb7pbFCxLXDGrkvTrQIojDiZfiRAkvC4e\na7a9\r\n=xDFJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"c705d86989979747c0e87028577418d87a6a143a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.2.0_1643807730613_0.20093105227420116","host":"s3://npm-registry-packages"}},"2.3.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ba7310a8335f0c771b7645e6d3ed6f0e74c964e1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.9.tgz","fileCount":970,"integrity":"sha512-W2KDehi2p3tLMPPNUzIzJx9g2rRF9Zo5tWTUAKl3UXY9q6lbVfPGG68iV1uKYS+DFRUrvXT+Fazi4yp6m4KqUg==","signatures":[{"sig":"MEYCIQD80DWce4yXxBNJStDkR1C1OCRYegON+1R2gLj695YjWAIhAO4cPY4KYDrw4qTGb9/tNI8NqH9Xuo88aN0ezKxN9i07","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+oTiCRA9TVsSAnZWagAAK1wP/0Jj6FzUC6/huWHRUlgU\nAL9tZ8JAQIMGh9YUQ9J7ArqiiBgJIqRcDv/15QNoM1An5c7T3i/xpxvtVvwX\ngSl+Arj949g/hxoYTmRzQ0bMe4fOn7T8hhieCncC0XGOziooJjgEzTaISS3C\n315pPr9D+hh9lsfOiDA4lrgkxmg4qiFG1ofKOoKnq/B6BvCQq3P4p9AOtTt/\nmboRySX7Xlupu7qalXTPUR/Al4VLF5kCbMU59GDD4Vyb9N7kkq0i2M8P7CkT\nvknYOWAu3gRrGjDrpFpiNMBddh534r5NsXEpfrhbCIfqz07h2Dk9wpbe430c\nMC+yG6MQWhv4sAjX6gNAFFcPCOpJKvXYYARxI/s9XJYae5SCMqbHwLRigOu1\nUNk0OKwU5HRq8w9jHqZgvo/9OcJuZ5bvuMQEz2efZqyDszOayKST80xA2eJl\ngXt1gJy/afNFD+CrBsbXSmu2LAF77BEoBSZpe5tdonW6GklnCFyrwPoqratG\nSaIC/LY/XHcxp4SwSyEEhiHAdK8f0jZpLSjU0Onv4ZzD/hY40TkGMIO7+cQp\nP2qECqMuenzQNy8y57jxNzeMZlqffwikyoQuDp2f6APN2U5P7Wx44hMsXYGq\nLjbkcuXo2Bf93PtFTkFZfdbaFeI6vByj6/bFRs1O3PKtV9iaA86KwuYRegPc\nxt1Z\r\n=7TfG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fb85d88c74180d48b9564a8e00723c2be07d7721","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.9_1643807970255_0.8401040967235269","host":"s3://npm-registry-packages"}},"2.3.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d03e975cfffe9ec7aceaebc6cb609091184d8449","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-beta.1.tgz","fileCount":970,"integrity":"sha512-Wx6lJLi2zAFg+7EBpnGnDfVdcfS4g+JTpcR3pQXv4EmeC1YQ1e0JFXiIy6L/8iIe7weACYqg3fLPTAnCiUFe6g==","signatures":[{"sig":"MEUCIEhoxbByUplcep9KkjuhqMVzjxORrngbF2KbkT2tbO1nAiEAgkMnsaVF/u6DceENvFSrTqIpmJVL3edujG6GcSEHVcA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+oYBCRA9TVsSAnZWagAATM4P/2H+P9ozUmD0MlsLaTLb\nFR73i1kR0C6RyPHU476Rhi6jUcIEoCQ6bzIdrt6cA9RoAyyB7EvAZ6viJqWk\n3OiybYrgOBu3nVUGoZuY2O5No0EZQk3wh9qRYjy4UxS5ACQhbMJTmdlk8Lgk\n+GfDkuEct44dOFIhQhKWMlTQbN2jZm34GoKEKfdWPxv/XbTiS8ruEdCQ0XBx\nQdDUkfDYRwb2BXGxbRkLomZMJSiFZ1EjexquBwK961oeC9/wSjGBQ/nBY7w0\n30rdrFELjxt4o0eMVrRd8Foj/JhOj7fXlKqg0TJhvhmk/3omTWVtULXfJNl2\nQfYLhUUATjvCO63Ku0bsk1CnhC7Rt3Uh+26HPSNd72GAbKLgk7dydDKxUv8W\nzz4dCUR1AbMrf/DhrrfmhjePBfh94QFALnCr65iggcgwP+mgkcV7U5770ZJ7\n6/NmomtpfFUiM7VwVOlhb5jAZse5IWNHtJKmg34BBU3VO0P2NCvK66wb8MYA\nouVSFJLCrusTTur0imOKVmPQFWPIiPG3L278jfwyBMBVO60H+Ekdyrw2x1UK\nxXSoRmKWc9wu1qSUWzlMagwx7XlkxYgYqqfGdb6tL+Uo3aVJvK/awP3ySyPb\n9xz5gOBXgz5lVgzaV/Xs317Mi5bUphX5YHjtJ7F7WDen0RL8b6Uxyb9e8bZZ\nuc7B\r\n=o2IB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ebe9d8344946409a8ecb67401904aa60a53dc4fa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-beta.1_1643808257104_0.017012134837048443","host":"s3://npm-registry-packages"}},"2.3.0-feature-ebba9d-kz5lezmb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-ebba9d-kz5lezmb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-ebba9d-kz5lezmb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"403450b5d2780d3aca0f54c46760f4763b62ffe1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-ebba9d-kz5lezmb.tgz","fileCount":985,"integrity":"sha512-2wcjR6N06zfq3o+ZsxdPR4uocc9e7Mkpuqhy8QQZdQjpG7KiUv8N+jap/hmN2TXDHMBY/yfgBXxxdj8VXFrbqQ==","signatures":[{"sig":"MEUCIQDW27qIN8aD0VerAJkSVcJoqHwLUvNuOlUTz6kneG1I1wIgUnMLRMiD3qgQzgOO3CV0wvpJCtwG9POt/xZZhb1pFFE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1659531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+okzCRA9TVsSAnZWagAAnFYP/irlwp0zxwZBxfM24Ira\n8qR/QCSdDTYd3k9Jrj94hU0einnCtkFRBt+Zm0dxyVyAlipJe6yfyI4xZzJL\nzJaatdsFOkyN1eyGJ56kScXfneOGmk9D9m8pwDP9vLz6We7a+4YrUJubdled\nmgV8PmyNgPEV6hga7efirhqzFSyWZ66+9v2fs3PPLXxBsgZ/owGvbu++EeVC\niLv/CRhYNuJuQD2oNOQeT01XgJUrHTeYd7Zicb7mCIpHfAbAMlG9BGkpRwz6\n1LgKzXiVBHjsUcr7+eMPzqQMJwg40r9La9dwQYwGMmzVa51rIE5N0eqH3QJH\n2uZOgd4JIBedBjrL/TxNbD+HJK+p76045htAoMK8CGdBZtHFyTl5z/+MHB9N\nAbkMxgMN4vH+MeQ/KdcbrrPHLPO3GZHueQbh6Dvmr7FMvuCUvhH4ILpdwmTJ\n6CqPp13saWGn2Zm+5+PcC0AARxuCo6WD3rxLihAFfp70sSQmtFEsT6C+WubK\nxTMun+USfMeRLRiF7UePQQA2kaok0haw6I0AKZ5O7JYXtp9fl8nWoYDLQ0ps\nUVT9s6FFhVsB3fxcl5BMog52C/VxPdVZKkL6PLlCwb+kBr8cupJL3ymdXOUs\nQIvTzBrcVROvq9s5Ag37goLqIsDvGrVUm8Mqi2ND5ejLIN3cNGnYluDJ2Zi4\nu/e/\r\n=MsnY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ebba9def64dadd75ebda3766b9cee040aff09086","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-ebba9d-kz5lezmb_1643809074797_0.9538622807219301","host":"s3://npm-registry-packages"}},"2.3.0-feature-f29109-kzdv733e":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-f29109-kzdv733e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-f29109-kzdv733e","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"233180f84402183f0cf4c61daf78db80dbfaf4a9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-f29109-kzdv733e.tgz","fileCount":970,"integrity":"sha512-P/pX1dy1iYYIbp+3BMukS0+Hs2LQpEl2/zrnXzSoLSMNYIORr5PiqSX1492gNlDc5fCbu3U9ycMCYIZPD36Kaw==","signatures":[{"sig":"MEQCIBPOsP6uzEuzMeaEpvOYcBIFFTJKsKymxkgCYyVKdVQTAiBGG6ez9xBr+9Uom6AjIWQtaYcH3SuhlQc/WgiHaeMw/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAisBCRA9TVsSAnZWagAAQ+cP/jVe+pH+vAgcxr/xCyfa\ngMWXOQnlsr0uNz+JRuClxGkUmQ7CeAfKDb7AUkIerwqOctKA/emekYG7rYhx\nzUpVi84PGmga3+2c12EKJUpcHlbY3le8aP3yEaV4HJbRXM0yhKj4Vzo8GHsN\ndwpU7dL5RKaisWgnUKGOJOTkaeTrEpKKTGbS7uwyJKxj7tY0AOC+XTEXbMQ2\ncAERrLmcGeYB+E7yuitZ/aSUEqrt8Gm+z9jV8yvNlpikFqRCWSBFz9u9YtYC\nK7GuYrj+MB055ercJ8eEPTFTtQn4svknsv3cBYkqfcHSIRTwc0Mr2nrPUxjk\nJB3UiBw07T9I6ZkQvxDZpgFOF72XXpw5wNWtit9ciBCiOfCrtskD6hn6/liM\nZNxB4hH7hOGMhhtwufKKLC0z8YuzriWwYNabKIgxLeDeNLN1jzI0TjO2FLFH\n+/OeKacCqBWErB3TCxtLUlAYO8uQQZ0MAchTvQ/ZJZVYsbwjDAC+TsANtyEl\n1ZALZAU0I9tmGRNyU0UIfL29RXpy2e4tHnZdHTtmjWZ7GtrvmYAp15hgh6Bx\n2Ho7WjGltG4d5tRuuV4V/f26/n8ca7VrLnHjbWiRZS3hlZC//WVjuF6XoZ4g\ncxBXyoB9Cy/tPaIwgHRFNn7BVTuAKh852xgAYpAiURkf5y6/RvNitlpo8Jwa\nOje9\r\n=EH9A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f29109c655e72fa5d29e1685390e88ff2dc3b45b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-f29109-kzdv733e_1644309249232_0.5315092725440043","host":"s3://npm-registry-packages"}},"2.3.0-revert-48-feature-e581f5-kzfanjug":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-revert-48-feature-e581f5-kzfanjug","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-revert-48-feature-e581f5-kzfanjug","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4d236989bc8e4576e1a77f3ebee9e6e91c2600df","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-revert-48-feature-e581f5-kzfanjug.tgz","fileCount":970,"integrity":"sha512-6aWtYZVG6L+mPBnV12/UJktpmb3qyNTV2OdAu9SMaQoRYSXjc8jde8HkVSI/1ACJm41JhnqliPB1u0X2RZ1wXA==","signatures":[{"sig":"MEUCIFceH+HU6C/icGW0FLQa5VtmUUUXUYmc27Jep499jRX3AiEA4EpCEhsFoPPOa+UxkdPw4eEdEl813fuu6Ws4auEbq10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA3ylCRA9TVsSAnZWagAAkIYP/jdZyw39f7LrA2vCXfNx\np13h0HVU0Qd7XnFh69usBoKzEN9ke4BLeK1RAn6lfISNJeKr1OkTN3NsSH1h\nRcvquE9MBN6qUud7Ln6SlxMikidOHI7QbT3kE1AYYd7kvHd15+tIj8QYP5rw\n4wTPpWIMCBiG7ntEShoVbVPFBxBzPZjKlPyDgk/smJjUt80eTe3hRq8ZYJOM\nBkV6I9crpXO7n40Xrow/LktPOyi6BhmvQxVdFG3fiz2B9N/bBLneHSVp2dUi\ndWOOtoKDvOzWFN8iWTXl69rxt5tDNHW0WyUhyEN93opbcgJfQE+njDxHXDaS\n3XxsK+XUZeJ0Edh9XYWvyOyuOJiwHJ1AJlu+fFi7snw2D3Npv87Uhxqfmv5u\nERW7tEPTK1ho84UxI6ZpvYR6INPzQYFaKgpMDPdz7KcWovcAt8CquKXWlmHf\ngD2GHKGftTwbhlDRnjMAvRn/duZ4gXEeNZx8a+mzBFxcjEmJWhOyMAJa9hM7\n38k572bJJrUcY3hI/LSlqboasb0Tvb3IU0e7v87CcRhQaNUZSSlxnv9Fm2kU\nQZ9p2tiYWTQNzAo7oeI2OJoyuXYpKbNBE/nOSfaSyOX3sYLsiODqKMwVP3ee\nQNrtk2xRbDX50RC8dnRBu3Ms1CEtPg3sIijQanIhrw99cjkgzJFiqoiW//CF\n3hlX\r\n=sKuT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e581f53362f6dee363f1fa547084da921dc82c53","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-revert-48-feature-e581f5-kzfanjug_1644395685667_0.6229005370826088","host":"s3://npm-registry-packages"}},"2.3.0-revert-52-feature-e084bc-kzfantsr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-revert-52-feature-e084bc-kzfantsr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-revert-52-feature-e084bc-kzfantsr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"129a667c27d84289c6fa1a522134473836872aee","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-revert-52-feature-e084bc-kzfantsr.tgz","fileCount":970,"integrity":"sha512-iocj9uqFfT9ARpBR5DSXAh1Eb8F67n812IQRidwiFbOo20bJrHCMH6MGQSMRfj1Bg3Eez71wMKq+WdO6DTrM8Q==","signatures":[{"sig":"MEUCIQCuH823sEoEQ3MvYwUrdT0ZDkUvWXA0FEW7573X4bDEjQIgfFUQbtepasyqPz0olcN8tsgj3ImOM9bXu3u4kD80upI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1651581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA3y6CRA9TVsSAnZWagAAcToP/3MMNlE14Krzowu+u4UZ\nkZmEs2b4G4aErUPwK1bU3SlrZ6Wa2U8iPfW5s/NjLg3oBmz+oSDSShf3vGEg\nDmKDhjZ3iYq28FCEXzvn37ED+Is+79gOhgfTVDh8pkLnIpuBqprh1Fn58Mq3\nOv1DDGyk18ZP5VUiOx2QJwXKMCJJUJeJnYsD8pKYhoJKV3HXXuu0RUg2rD92\ngQqsvsAR39wBJTr05wBHe8GcutDsH2bGlXgEUeYb2w9eIC2kzk1Ojiv/RVbm\nPinTPiC5+2C7uVdb8RyEZWYys097tcAiYevqH+JB6ULaguhJX734mdi65Zu9\nU0BAuD+e8Gqrb/tQ/6wli+kcMOcAYl9B9nHhcwj9s9pfxYFEall2so+b2LxH\nN8s/o1ZNh8ICbvzWuvIuLl5CFJnjTwNVd3GF+3QGhGbgqt9NxLd3u1epGP4/\nKQ9FQiq3Emq3TTUhxw6EciQ82iNXR6Xfy4TcbFnvcH7H1qMr52cFz+6QUhCq\n1nVEAd/TgLKkoChXEDP2EcaA1V/vFoi89A0FFBqBXBiF14tEOnGE3TvecJIZ\nzb1ts4vYnOKdlep6iee35x4YuQlIYOkBPJC90tlwJNs2ETt+WMoeJCsrK4El\nYvhP2qBSjg0+najcCN8XYoinu1CnItp4UldTdMzOT38XUcJ0+VYQl/DEU/Aa\n6OpA\r\n=RUnI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e084bcb0c0c1eec5e6dd85b6f2e7af5e7a7970f8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-revert-52-feature-e084bc-kzfantsr_1644395706136_0.5202405131556924","host":"s3://npm-registry-packages"}},"2.3.0-feature-60fd62-kzfbgeyg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-60fd62-kzfbgeyg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-60fd62-kzfbgeyg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c5e7ba1d53d25e0889cc03257585fb71637e1a32","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-60fd62-kzfbgeyg.tgz","fileCount":970,"integrity":"sha512-xuqPFSr1Q6GtgE6kf2Ch+jIOqXczp0+Q7oF2VRshNGDkJ1iuefUBC3tBVa9piVP3gfNaL1UfNwzayzuPKa+EFg==","signatures":[{"sig":"MEUCIFZs9Zp75S3Fox2skymB1tRQqJ1khU65RX8q0SpfbDRHAiEAwWsEI0cnXvx1tjibt9fhTBH1qEvKxroyo41Q9wZvRMU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA4HPCRA9TVsSAnZWagAA0mQP/AofsHDV548aDTkEzG+e\n0Q0LGAPj5A7+ChoBvz7fVjiRlb8GbONLgDYnB1KuNzgvtw9ys6nRl8BIbRha\n4ExMKsZnP7YkcSKzBINQ6vUP/Vgjgsf+R0M/4estynSzJe7Ok8WBa0Sv7UCb\nERyeM0dxd/Lu8iokDDj2m+xM60RQVCWZlx1KjUcQXW7H0kMW3WfoFF/Gx8/9\nQNxitVbUIV16DQdtFx5kQmCC1mgBQEAQRiY7acY/L2X1aO0Tv43WXwqU8d2I\na/M3WjlW6+EK1rbgqxbe90wSKmt7yBjbUahxCwT66IRNztlz4xSmiGvFkDeG\nyv1j2NQvGlvJfQFr+XNtywy5bU3Q9BT3jW4ayv2B15nZsb2Vn4TLcYLBY7Q/\nfL6y95trePLZYpDiPxKCrBRCUdrnBIDE1xbV+NaVAoBMJI+0z26Js3/CLLvg\n2bIn36Ov1VANomn8F4bagkYs/ajXZmTHKhaoT9sP13AToyWOZLOg6/fI16S4\naoK2x1n5XXOv0cdDfv21vNIrMhL/V5EboyWyEErm8ePkvbj48clZv8h7XaSJ\npDXJCYfGQ+qo6V2HdDXiTI4rfFYpn7G4VEzFP5MnnCXRUge5iqMnCsHaV1vW\n1uFeg++dkX0AEgnzgLHUjpA/0xR8f+yIlsHHn5TiZd6pbS2Htk/qIxOoR2er\nPiSw\r\n=mYfi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"60fd625425663a860fc94545eb2f58f167a00fac","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-60fd62-kzfbgeyg_1644397007749_0.8747488346349912","host":"s3://npm-registry-packages"}},"2.3.0-alpha.10":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.10","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.10","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dbe8966d44a134d1cdc18dc27140063228d20588","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.10.tgz","fileCount":970,"integrity":"sha512-izfE32z3+juur1+tabebiNw5cKvOrAmpzKEGBXSfpaCUQ7FBpvza/45pZBkPoUHzKG8tf0VtGFMd8KV/50KQwg==","signatures":[{"sig":"MEQCIF/Ul9Cm6SFCLztKbfTjKl4nXi++tweXSR6+fo8z7RbzAiBmjALl+TI9loyfEZEphI6BmROOvPtf3B/dcM9ZaNJ19A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA5SpCRA9TVsSAnZWagAAxPMQAIB801Nh+OH7vFgAXIVn\nod750/SQi2a8zBtg98ICXIKOKH9BVUUG8sn/VSx6L54bDgu3YkkPebkikE2M\nDJjeIjGRc/y3o6k3Oh8fs3+rCEQBOdAc/ZAEpsOz0IOBgMBrbcTCmc3EtM2K\nPZAA0u+pq3XZ0aL8775zKs4+PV+nXYRwA2V2wMi9whWFq2OLnL2SEupXgbOJ\n9Q6FJyaT0B7Af+1gmCuFtYvWz01EozX4HpUmCIqfqRVADtPW7FlgZM5/Hb5E\nSSZqRRYz5bM51XZmbMj4SbJkdNm8hkeMOZ4B3wkd/88gmAVxLrFLmapmya2z\nF0BYX57Kk2OfamJreQB05btZ178IUBNy9EEBPH89zBjLBW2T+Tvcg/pUOjzs\ncAU6njTa5iOmtagq3B9PpihPx27a43xa1URBhxRdMzRk35Otb104+mybiPBr\nIsIL7i1HkNW1GWvZZsxUv3ry7vXGhU1LoDUgLASCWlXbrq9gNdlaS17LI+Vz\nBFLQdqQS611f0UTnjfgM+a3X45Gi/gyp4DvlO3p2K/rMIq9Z4AipukEDTCXe\nUcbOXzqfKtDwC3UnAGSmd+BxhkVXx17t4yKZNIMc3UWteXPxAiUCtB58o7v6\nX/39oTZaxolWJ578uU3cAXuop0Q7fL5YavtCk2FBQYV6itMZBg0OTfocL3G9\neoR5\r\n=w74+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9af6e268f8538a25db068c2cf4e7a6af88739ee5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.10_1644401833110_0.6928208320870748","host":"s3://npm-registry-packages"}},"2.3.0-feature-02fb94-kzfehw4a":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-02fb94-kzfehw4a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-02fb94-kzfehw4a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7ab6706a66654cb0b4ea31ce0baad25bb5a21b99","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-02fb94-kzfehw4a.tgz","fileCount":970,"integrity":"sha512-iqSRSnKXesiPmk9v58i1Gx7DfLSMeA+nGIhRw93WPFFn/OOCuavPMQc86hLTzFZmmQd1cHOlfACN8jkEFkYg4w==","signatures":[{"sig":"MEUCIGg1wmdqHo91gnBqKwqqFrZrYKZ1YjFJPx6FsE3IGP2oAiEA6aQNk9OD6aXvqWj7eUtS4w290u5Q+Ri0I1ycUwEQhZg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646487,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA5XBCRA9TVsSAnZWagAAdcoQAImcdYVxvHiQaNet6I9D\nMNV69nG4rFX0b4bWh5G7BzyJ85WGWKN4oTXlOMydx79cRLMBuJl3bnnP0KOW\ntw0wzLDThuPgzqY0g0SGhgQP5LhBphM0PPdGcvKtl9UDgujWURtd/Mu1yy5q\npxWoUD9OLeF3FtEJcQQ1jcNZwQvEEUGi+wxl2zmFazceEFjQ7x6LzG9a6u23\nfGKEqEj2I1VMLA2Ooa1/A/4ByI9Fh3n/OQnX5LvkvygCjP8idrih5Ao06DoW\npX/DhVbZKCYJ7cDioX2Alzx5AOzcr4+JnRibQmX9yOnhc5WU2w8DKw8B7Ldc\nye2a1kHhjEsw+lw6hiBn3vA5LjOtQyv7MxgmvwAnIyuinvQQiOAi1KGTKOtW\n1zo0m34QUDUpZsMQqOy/zxKMZG+p4n2r5GynwN5j8K9QnWqEJvP8IsWPnT0U\ngdkxNZrLf6yTOKNRS7yW3AftjhFcLPcgA3IZrRB7OJEQtPKH0cCeWN/mUKWD\nFTjENMxVQ7dkM6n6jTEbttQlnkL8kMQ4GHEotqJPxZSJM8UpYCBj9+WD+TaK\nBUIQhgNnMoy0OcX42J1/DIe9GU0V4Wp4DQK9Mh6gaHViWInTNSOF5Qqen9IL\n+TJ1IYVTJVuLYD7Srj66P1/yB6Cbze9+XCeUEHYdpaj1CLqs5NGhTLyteK1k\nCXrq\r\n=AyL9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"02fb9422c0d22e11a421fadf65c4219dea8787b4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-02fb94-kzfehw4a_1644402113066_0.8932092376926521","host":"s3://npm-registry-packages"}},"2.3.0-feature-3077f0-kzfeig77":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-3077f0-kzfeig77","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-3077f0-kzfeig77","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0351db0c7cd87c2cd1f41c93f454feac84f315b3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-3077f0-kzfeig77.tgz","fileCount":985,"integrity":"sha512-4qI1wCrHOC3Fjwd/59a1B1YMsNcSS4sRnK+WgI2mKUmVD9CRgi92fx6F9qUk8uAhDy8QiSxqZKXvGO0E2CLSRw==","signatures":[{"sig":"MEQCICoKL9JY3fbHMKjS6xiiT//RsW4g6XFfnmSqhCaYIwNsAiAM+tIkvAJk5CMVDp0V7cimKhctx9YIvzcjPzMgvquHrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA5XvCRA9TVsSAnZWagAA/RoP/iTQoRjA6cNCcLwLliPJ\nq6AaqZpxuiUSCRxe85PHPrXNjMvFDY9q3C3RNF0J34wWklVsWo0rsfUip+xJ\noEIaxJ/0o9qH6+G/F2HGfLnUCu0hak9vNZ3GG+5l9F+nQnllEA4auRA+QMMx\n2MG1jRUU0q1mqTl1K9lriaarRNZOboqWqP/oynfNQkWYc/JSh+HReRDKs1z9\nRVKevqOIiVUudvia2qrbmmdqgFvtn3Fpx83ZJidi9KEa6U+9OMryqR4aXY+g\nt6Opvrw3620PR13tbnqJixYrsval5MjbCqHhVEoARhXWL9spkkF/sti4/ogf\nSI0UsgR37rsY3PeoloeSkk+YNCqp/eV5KvRBUeGq1NXn/tx1aNxEFbE0yksS\n1xBo+9JKEYMUSRkJEibTmjb5Kz2AXETdXL0Mo+aWEWJYYB/nY0I0CUDGgnL9\nXOI12STHgyGOkaUUqNC2LWMYURSiYC0DH/iOZ3iZM5UG4pGKxtGCsIYjY5N7\nXTBH0yuzfKlIFhw7SEtzb48X1gW7e+WuFMbTYGoQOhbaT0SEDZAsZGGDPg59\n7eukNObjhxGGV22zCWUwYI5XPYnipdTYQl1yPyaZiZEp3x+UboQYvyOQUOUU\nWGDc41qyT4BAQK/ytsp/UbXztNA/WdpxN3cwRZbJmsSKe05+iWYLpYu3BpVT\n2I6+\r\n=Mn+e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3077f07d9764eab6248c3ffd8efb91515af55dcc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-3077f0-kzfeig77_1644402158771_0.7951972793906121","host":"s3://npm-registry-packages"}},"2.3.0-alpha.11":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.11","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.11","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d3225657cfd28852c911c3a9cccd60dfecdb9af6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.11.tgz","fileCount":970,"integrity":"sha512-P4BSPCdWiosOfgKvBFYvG+CNRaT8GG7gjIUPuVsI5uUwVHoFur+GYMuAUTwYa4RjLbRbfIY0Vr3WDdzWw2w21A==","signatures":[{"sig":"MEYCIQCMTlSyWXGXxAyHIXhtx3SScbeFoV4NxV6ewHKDTMposgIhAMYU9GSyVTjS4qJxUnBBb1uB0KyrBVKQNDFFcreZAa2t","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA53OCRA9TVsSAnZWagAADBQP/1XZ6FtiG8R3KZmARP84\nENh2NDbP8ibLYDUw7aEOwhPzFWNpcHXyOMq6gwWJeHQZMNghFxrRXAKDohLI\nQWIrO4VqdMRo2ro+wNgVkGTBrbEXDVF3CqPT7arcu0/njxWtzTPwklrGVYV3\nO0DoQFyV1sc2tTEdKBr4QUpY9aEUiRNgR3WzoEebG8CwAbKYg5MV78owbmyE\n8hhPG6rQoC4pPF5+X0kLSxBm1Q2cTvAH0HqAC2sAfrT2dth1MszbbY9GOjoK\ntDBdipWAhzViOfVyVrkHkecopWF1PBiR2VMOhoN0cQGY5Q8yW7y0cI9CqjzA\nBfFj40DZUb1kwypJUDLguLjTSDyorhK1fNQotD2A0a0jwU80GfGgE6npBS7k\n1nUK9Iud+z74STEDmbvgniFgU+DKBit+/udRKPwDhWCG/G31Mnq9yt4rjoKw\nSc4EavduTembuLnTR0UgQoQr8sYazUxS8gfOjZrMprRTf5nKmCuW3Ru++H+f\nP+EBgqxejlNcdLUCC9DhZhHqnwI/F8l2tLS0v3WlHj3wBjHRzDO3Q7dnM0lq\n936a6fSpaiChjXykU3hYLYW5Wakm7+RraptTPlVgceTZsZR6bSWO9UNrEPk3\nZ0P/AfVB96VjT4oJFu4+Ng6f2cKYxp/Xv86+T6NtP6ny0E1KNCfmsHIdx+N7\nB+lR\r\n=pfx+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d13dbf6528769337bae59cd76cd83c5aa22f4caa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.11_1644404174230_0.06664381752846538","host":"s3://npm-registry-packages"}},"2.3.0-feature-02bfaa-kzffu0yj":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-02bfaa-kzffu0yj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-02bfaa-kzffu0yj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"facd2ea264dd69126865069c065b616f7b27891b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-02bfaa-kzffu0yj.tgz","fileCount":985,"integrity":"sha512-R4DIyc5zr+WTZoS8/VyGY3l3XLf4MHM4Ks86Ej3iMqoFqYQNkZ9rPX7jXG1jKrBgKdxPP5yoNJuQVUWETIrK4Q==","signatures":[{"sig":"MEUCIBYz2Ajg81li6WCW1+416cZJ/fQYC2GgcRUKloNI+jqTAiEAnYb2H4Du//SY3sKosNzvR41MZlbO1/zPVMhvfggaL9o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA56DCRA9TVsSAnZWagAA31IP/jQypkeIil5rY8xFx/VB\ntL8rE5oBzD7Ba3mRsyiIr4XsifHWRtoE34W9hzwy2UlOZb+VuZ02XJz6kv5d\nSI3zCQpZiJdy5AyQ1yeTbh/2mxsZ0k9Xugxh0BSy4Ys1VK2d2gpjx5gzh2+P\nVoBNu3r7PSuYhBOibKFMwaraYiG7XQYVyrSSJwxb0yctyxQyJzXgAUo2ST19\nm7GbwQOaA1cMYs7aiSQvmDxO8O376Ceahel9x/AkRXF/3TZDbjum/adIfjbC\n0ocTuJFlp7J5fci4KVFflMa1AxeWLOHHoUMyxPyLpmIWt8od3bXKngdSRmHq\nIbmZlUn1GHbVegD/uzuyxvXqyYrbghWUg5JpvDjN7L/Ss341yPFTJkvdusnk\nNg7fQrFUas9GBw0O6qQ3D4TapLuECOtS7uUDpN00JX/Dyld5qygvaHiYOmYX\ndSMED/4eAaVRMeJdFf4XdGHU6KKcFC5AmqSq4e7Eq9d+nNCHXa50m2r/aZNH\noyF8XFXwRfnPcM+Ko+aVWqK62Uf5iBYZj3bq+gaWDvSTAXSFQzykx2/RK/Vn\nw3iJk2YnwUBxrM4FExT/AArjvJZJdJHu8mvs5GAsEjYgy4qiA6GVQWQNg5LF\nWzkZO/64j0Or27PC5v+WLXYg7diPTgUIs0GfIyR8QLJIj8HYW/niVQuCoUlO\nlxzQ\r\n=xmhP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"02bfaa7f9b4116c00aee7781a1572e01275b78b1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.2.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-02bfaa-kzffu0yj_1644404355570_0.435804197145347","host":"s3://npm-registry-packages"}},"2.3.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ed4ba4238eb06a623ce2e7d1afedd2dc07132506","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-beta.2.tgz","fileCount":970,"integrity":"sha512-E3kVc993F8C8JJOANEo2Dl7LDOFFzE9uQ733lDyLpAMLHdONkpMNUSComP42bUWF80kT1f+vGYUCFqeWV9kj4Q==","signatures":[{"sig":"MEYCIQDPfZhn0vNm50IPHCd+LM/7f37Aoy2vRRtAwlUznrl/BQIhALA2+vb0c2hbjm731JLHAAK4tQKtZG5c+n6T34xZAUl5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA7KyCRA9TVsSAnZWagAAVvwP/iMnvYYc0wAbR0gdr0Yy\ni+H68R6yPkZwt/WcCsgG/+Xaa/D+lMMUmcyXpGvZDiluO59MXfhybn3XxYNd\nieSrqq5k7Fsxqms25/nYsuVy3QiyHkrJuZ1INDJv0hRDl3e6S+enzDQzUJK2\nY5XLX5U4egH9OlPAZfpMjsuFj5iyEW6RTdOLpWgtERnpM/W8+PWuy/0AIeSO\nEJI7Mwg45xgNhPSY6lyhzMnvllfl8SjzwTRAEtoJLlH9Iuv79dqOuYTOiVt5\nqTcmGTPB8tCizxrukt0XEvWc+LyJVjlTuxDxSrnaO3lW452LsXxZU+J+pYYO\nh+cKgtBaPcmPp5vav9FuBr+d+U8gGulTyaanUn/ojruOnvhQ1E4vT+S0kGBM\ntE7cSlmZEcKhSF95/863PeIgHcXgx4v7bWpPQIfWAREQpa+xUJOx8+IO4ey8\nomix5h5S3hMFSYJLCvDkv2IVVRsBFcXCciEgDZhmFpP8YBbeo6xQSMr2SEj/\nBhUJs10Dg8DPZysbHGaBLByTGaekz3pfMLBNa3IFRc3hiTyXT0fLcuuTSbEz\ndRha6Nfw9TVfNGnos1VVr1cMgo2gaQf2CWVSIDgE8NDNCNkXj3lNBQ+yHYL1\n0xp+/jfjy+NdFSwmDQkD3VgSVkNuQQWfrZlQopymZ3svzCgmWlq5YRZjpgRQ\n+9Ys\r\n=EsRj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4aaf1ba468c1f06c45dd8d50ba13053008022030","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-beta.2_1644409522003_0.592953033728365","host":"s3://npm-registry-packages"}},"2.3.0-alpha.12":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.12","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.12","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4b39fa45333f1727808873386d53a459f08c4849","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.12.tgz","fileCount":970,"integrity":"sha512-J8o5dM5tym6FcLF2cJnMvkowgHfqyfr/+K3G4+6dkw0/eA5QmV5MlAnTpi5a2+L/UsYTvxbPRGBjdKovDyLbqQ==","signatures":[{"sig":"MEUCIFV6qDk8BRCnPp/HaYzj9yc8XRmx0kNgbOqpE+PytZdbAiEAnqxPs0uG7SivKsTRVeoaKcVeKrlC1PDhtlAIJA4+2IY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA7OFCRA9TVsSAnZWagAA804P/iGLspsWAl15sXwh1Zpk\nwVaEAMKO9qlOPfxMx4al+TNJUl93UcClpsfd/TA4388I8qeRcEdHBO7dyUDN\nrnHARLFLGmIWclwMaHTf5Us+ig1BA6f7/XJJ634z8y0PRpUx9Xt2wy7JxMQk\nVsItpMc5dIxenQnq1PTm/xjGTYUkd4gWQHQxJ9TFmbrBwzIG+xIjDdMACc6p\noyWUr40ZIknjWdtiyXkxv5Az4vCAC+xxIPYf50gY4anun+KPXZgtUWT9YTnq\nTaTciM9Ia9eLIobElo4CzpUAKvwtwtpNnEl6Q0opLDD9o6+TGuO9c9igoEWt\nuQPXYH4dSx8riCqOYPYY+JkXyrEQ9wjI/RcJil2kAoQFeu00/z80Q3GwhcNv\nUI2J+kMbZmDpLYe8Jr5lVFCEbO11eRap+MGxCYslQoZvtgkSjBxrRlZ3xYDf\ne5lpM8t/Ci8GbpR0W4+JEpVGURtB0a23Kk7Fci2NxGuLM7oBJ1CKo3cpMRMQ\nlvN20xhL/lEyxnjf+Z9oKK8/8yQy526NtYEc9sZliB4bb+T/AcyxV93KyoUM\nlAYmf6AwqEZQ6tT6av6+YW6XeCdDldvl7FIgqkdSeg7cea8pzRmFzXssSe+d\niJYVOhktziFjS2XTG7mbcaEcgGXgjRJ70fW1W56uovI4InQA3440yMlpukQK\n+tAa\r\n=musX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cf38f5250cd7bb1a06667f91851369fbcf894cd8","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.12_1644409733172_0.42805279134223384","host":"s3://npm-registry-packages"}},"2.3.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9885d933f6fd91c6c6886bad15c0072fdfe9a57d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-beta.3.tgz","fileCount":970,"integrity":"sha512-iFifM+WPvjhWtPMTSHc+31vpKZf9IbWkT2dS5VD2MExAg4OxHQK5xALEBF2JOD8GqtSfYpK9lacisvsKE39fzA==","signatures":[{"sig":"MEUCIDiLMS45J2amovd+1Vt/90+DL0OC02+pd1no/W2J79aPAiEAvcYIp31OgrIe/jPZM+24Jfriz4dLhKrZOBqpi6A+ELM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1652355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA7sOCRA9TVsSAnZWagAAyCwQAIv/CNx1eNbXDUCB3iNG\nkJ4mUNigOu/1LaJ1p5NhA5juLk+LIgSeUJcue0qNHWZOhVwdHmM6JHZ0J/Ek\n9xZ1DLKIlzr7up2poGE4BPvFBTyo5+xeQN5wr1AHkRBWm7CeFu6r4XG+PFu4\nPMiZ6S5p9TPOGuGiokhlSSUaFt637iMwQECo96C+V8yjIwHjIzNk/rH/+dcd\nyDcubxTr3yzuAzNcnpje6++R6oSeB/r3A9f5R9/crjcLnrXGDR9qmTHdbESt\nw3Tz8tGUIt0KH3esi2pik3eo8ceIml1pos8RMkJq/EXyKv//wFWtnNVTmK9F\nGGSCQfuxft3w+7rYXqakgP7ndgj3t9B9p+dHjQmgdQi/1dQqrHeN8RgDRQmw\nXNOr0l3X7Ga9Nwa6cLshInLzhaL1Cf8yGz6LnX+RaK0h0kFNiR1USBMIUhSS\nizWJJjDcmbMJ+G2DLrPNs1z42aE50ncLJUJbWdCr/7EJJWRTdd34bjoXAkmQ\ncbmTbuqztmJyLdNC7S7qHGkWyBsL3GbcSjSEJv+3GQSf5edJ9zKViG0Nb5R/\n348KDxNyddOvNs40X0C2IPcjvNd6+HYlsBnG3jZivRvVQ0p12u41XTYPFBKI\nKDOKbv0r6eH59lmgvEADNAsF11IQlq96yvigGC6Vvt0e+CGI50GtTo+DHkrw\nYMph\r\n=DbKu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"57c1fccde535541a3d82e55a0936b5fa8199cdfd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-beta.3_1644411662431_0.43064714732172993","host":"s3://npm-registry-packages"}},"2.3.0-alpha.13":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.13","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.13","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a941d9e42353fccd59d62b06fb09935781e6e2f3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.13.tgz","fileCount":970,"integrity":"sha512-etB5pLjOCddD7PdbdE4ayCNz+EIaT0HwySWHPaY9uG3BgQOQCvlyhg9N9tamYl1tFTWBux2VtsxtabQENCPLXg==","signatures":[{"sig":"MEUCIFvEoDa+aGTPxYQziSdGeV1odwAbvrHYu0pIeo9CHjNfAiEA8M2L5Ix2yPDDsA0WYy8cY68Axxf5shMUYtU46txwoyU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1652357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA7xxCRA9TVsSAnZWagAAIKUP/10xtt2MiLULSauKH63H\nE/45lHY3sBH0By+ruUiEiqIsTHYWWFPgKz5Cu1w0pfsxGAcreBSlwhzSUACx\nLUQQro6jNVmgwwg+FA2io3ZUAnTup0vjQnbSCm438wVb7qig1I1QH7BtJD3y\nYOb8NWPRU2ixfBl2NJ0lTLWXc9Ted20BzauPJgwpbFLB/bRAIlmeLrD8FU34\nJpQfATwEG40s61LOEcdAdbijfRHI0EVDcSKIF31sGdco8KsrHa/o4/J0i9tx\nGb/i1U778CosfdEVjtD36MomdKaZNa3IxtsQNWQ+JlALl6n8To4DW8wU9bip\n6SS2+NJsdTFr5zld2zDZDxKVZEr/K+uyzx/cy6dCWV+JOCfU8eajALx/4oVv\n8wepN9/q62ntQFlmhHV8dPE06ZcEjfgaoUO+7EaVSmlzf+OJ1XCq7g4VMbrk\nMw3acpJaXmx0ABj0mHP7ldgjpoXQW5tJl2mk/tidRUXhCWy2l0JwnIP81HKY\nuRjSxYwnUC4cFDUW6I6fwLiKwV8KYX2WGjUVm0m/3zMBmAxHCHGg3nk0nJtJ\nNinUMmp5XI+sQRWyzV9MiTmF6QexH6Q9HdiBg75pkF4/gW3ETKrX2t5D2PCM\n9DCpAzFLYXYSadzSVRbDzpq+unyPCoYzjCUNDdSYg1DEUPmFBo1xDHZn0VxL\npYDy\r\n=kxse\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c7e8f362be7420c4c0c45809f5b0603cc5c77afb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.13_1644412017502_0.9976712342840341","host":"s3://npm-registry-packages"}},"2.3.0-feature-e87689-kzfkibrg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-e87689-kzfkibrg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-e87689-kzfkibrg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"94e53496d39f54f44b0470c4310772b4577befe4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-e87689-kzfkibrg.tgz","fileCount":985,"integrity":"sha512-/1frY5ZcBii6SYuce5hN5iU1vV1TmgHx9F7r9HqyYW1pbuGn2fhk5OAD/BEVDN6/FNILsdV+bsCKC3Sa0tO7uw==","signatures":[{"sig":"MEUCIGh6PF6szKZqcJ9apC5G7LGr0V7n5FhuwLQAJhrM4ugZAiEAowLMIR43kcFF/eJboB1JXda1la9im81GRSQ35nf4MgI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1660210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA70+CRA9TVsSAnZWagAAXUUQAJ7DT0fCg4iNgRkxK2kK\nt5JYRMVQ8BCZQWvKhTtYn6NwOV1R5EHMBOxPZLMrESY7LDTZ/4JqPd0a8r/X\nhff2sBG97GV3KYsiCakHiJ3/BmqJ+Jn3PPDrLVzmJ037VzpuwBk+4SQARnhj\n+/LuT6tcfNi0b3+LRPT2GIeb9mBYx/Imq5PvVW4VY+RgZay3DKgED+cL8Lzn\nMJmssANR/VV25+TrYUouX/SMaLxaYYZiCbUcRiHufZSEDp9F/ksTNBHMOdqn\nPIOpG0AVub3MJxjmljOPuGCHGXePmv4d2xZYVixxlKqc6foITpRI9v/xecmN\nUyGY7KeNOqk54w1hHLA2zsB4Fe+7xhqB97/8myw2TqKnLHxB1j4cVbCq8Mp4\nlsEEzutkwczX25gSDRW8VFb7bAjjk1wp4dkQR8FroKQY6vRuW9WDMHKmsgiY\nINrDeIlQDlwJHSfmq2ZSNgLmTaqvF/3e0nVckkmHH0JCDdaU9shphSB1Bt9T\nSSFWn0bY29FGmdQxe+H7gPF91K+g0JrIIDYuZHiBAwyWhxB7ifw3YxHKqS3s\nMJaGLBI0HrJ0ypWaxM5+r9echFrKAIKU9PlBwJWzmlMQBgWM5ggsoA4DZqb/\n5kgYX6bN/z7kkytQTg8adfIHMrDC4ZwyLO3O/GHo1/H2PMFcQfW+lGpwtWCR\ncSz5\r\n=5QUf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e87689b6629a0dfe9d14a50791a2a5c47a540773","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.5","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"9.1.1","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^8.0.0","inversify":"5.1.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.0.0","@types/express":"^4.17.12","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.3.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-e87689-kzfkibrg_1644412221877_0.9999741405313878","host":"s3://npm-registry-packages"}},"2.3.0-feature-fc7358-kzmh2r78":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-fc7358-kzmh2r78","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-fc7358-kzmh2r78","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d043c0f53f5dec31f24bfad420517b7189eda4e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-fc7358-kzmh2r78.tgz","fileCount":970,"integrity":"sha512-zmkq2CKG8+P9iGntpuPrI+wpLNolXn36fCWJs9EUIzrdLEKHKN/oeJzUwiOEwtLNyt1KCdM/mgCgAO9giXfDKg==","signatures":[{"sig":"MEQCIGBYcdhb3KoClFF9ZIXoQS16zs3/NrXGuOzzzK7fT7FKAiA+qBKl5YD6Id61+NATeMo7KmBA7yvJOQ70BKu/1XzekA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiChwfCRA9TVsSAnZWagAARUsP/jKCJ5L8x2vva4EGH7Hd\n6iQcGlFtHDg/GbpKpal0LnMbMloCQpto6WfZRLfeJkqAf2kqLnbIUhAaViAC\nv4bNnYenmbr/xocNIpD4h6Lewa4yna3HK/Tdz8ES7GvjWvNjxCKVwSGj3UW8\nLqesQTf8gGr4c1IA7pVH4u2VdbufmPECTxnvgx0XyKGOr1WiIov7lfEYn+eR\n44gUp0LCq/9p0Oj0v1Ua3wu+xPSbIChRwdEGae0XiRLRG9JDy1rIazStAJGL\nPxH7Fx6toYFNBZ/duOltgVOsmrpE5ztBD2H82HFKOZKz1zWqNFmrpjHoqTKV\nc8G8PstsYubzeU+Vt6HtKkoqgJkft/564civmes7V6xYwkq+q7FcGCwTdBju\n2gxKq8LxTLe3QfgQNGEwJrpPQ2I6xD1skW/oeQ8SnBbQKxju01wxci3cdLcs\nplBFBWfm1fkPv8B/otTusitWTW9NdmSGmIt6piiST+ryXKTonh7AQ8lVcrJ2\nwMiF4fu/s+bVTJGSZcEBwpQVcUm8sHlXsKUWmQA7GBhwmYfqJ/wCjkeDof32\n68zWdZ9fblLGSw834QnH+X5eGNCsy27GYlQdsBtrjY/+trYhYJ5Uft0uIjTh\nNss15ImRHkW45UOKTRakSwwosjMmYD8VIy1sWwsIhj/uGk6IB7mELp8fFFJE\nV7Pc\r\n=3yMl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fc7358b616ef5a8104f67fec61886d1fcf851fd6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-fc7358-kzmh2r78_1644829726828_0.2613444632351358","host":"s3://npm-registry-packages"}},"2.3.0-feature-ec7f9f-kzmk8l5a":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-ec7f9f-kzmk8l5a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-ec7f9f-kzmk8l5a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5360b2bfa78f598a9a24f6c9011a3b2abb190cba","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-ec7f9f-kzmk8l5a.tgz","fileCount":970,"integrity":"sha512-lbLgPTr8g3mkr+ylkjUdeQTSqH2WGNCQFT4aC8d2pqyvmDQQYNymqu01ApQqGYipzMTsXVVu4uRdmcf7HQ7e3Q==","signatures":[{"sig":"MEUCICVD5/gX7V7X7PfHUiR5dPr78PSd1Tsx9Fx210nJfWgIAiEAhSUd7/xZfytf0jLw0agoCqQJUZgKKxnDap/h8XFVCw4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCjDxCRA9TVsSAnZWagAAelgP/2Za840uXoVVZ8Lq+7RB\nf6EVMRidFTtZdzQhw1NYdQ0dLHNnuHvyhoL+M61Y/WLffSQvEaoKaaZEhjiG\nkrgmraDmHZlYxn+z3ovxhjcP+oS7fRM6daZ5nERE+oQNdeRA9hM6U2jdzaA5\nkl20R+JhDon7IAUHjuDTICHUnkYP7DVaPMyr3QEo+yCQ92wf3hEOasbUHIyh\nR32xJDRurBbBxNFWod6QmYQS1OvehaotXMFx3+rKOZztmfmgfBM8rjHhWr1m\nDvARs228M6CFVdCaP072Se4YSLxblfXB8aGz56VJzaFBKIs4oNVjVTZX77Ux\nHHwCWRz3bTOhz5xudqNuVP11UyWY2c4FsdSoI6+fFpuzCQOIlRlDnapwXzFA\ngV7BcHyrz63Qx0I2FUZc81R6xYSIBdgxyV/B0r3HnwR9r6L7ANxinPWyhwXP\n6cydROS8uoAOlHWQOfHt7g1BUiMtfc6DBZg7PiDcyOQZlXA1v2vs/Od8cXud\n46gVvqmE5vZgWmOVMSUum3BishLx62//KG3HVjf/E5UiE/T500BzAMnFJ7Vf\nxICKVDWIV/AR12MStNHd4eZGQ9hmrSTIWfQL8giFtlTo4IXQSHkbdfGOkXfS\nus5v03xCVdrq1hm1h7n1zxUL+L6UJ5b3pXQecmc9Gxec3WscyWv+azTt3XRd\nDoBK\r\n=d2Ph\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ec7f9f07424baa88fd9025db9b0e85cb16faa746","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-ec7f9f-kzmk8l5a_1644835057548_0.29717134830498204","host":"s3://npm-registry-packages"}},"2.3.0-feature-b87e40-kzmliapl":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-b87e40-kzmliapl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-b87e40-kzmliapl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5bd7b9f8213714c140dc2198b6ad3c86bff2ad0d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-b87e40-kzmliapl.tgz","fileCount":970,"integrity":"sha512-k5jyBVq26m2pHQukqaMM16PnRg7NrZ38DIJhQiHXf4tRJwL2HpQ4hfEEMRnGg96wpEcCG0qnb7tgXtUc5n2blw==","signatures":[{"sig":"MEUCICJFzefLUo4NE+Wxs+hQNGWqgTt+z22dgf7icnVKq/jcAiEA9UxJXd3TY5Q1hzaSgrfYVr0Lf4z1x00Y5W9F/E3zHS4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653811,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCjkvCRA9TVsSAnZWagAAgtsP/1Fb5Vszm95gIMEAJKtL\nIQKCu6uBbcEKpRrYKFb0mlnxemMaxlewhhap1m+bKNqcWiJMf/joFs9H1Yks\nx+WMJKumV+IArumXHyTdOMAwiiEEYBW7HwwuJgmYYp7SdsKFzEoI9B/R2Duo\nqUeoIrSYBs3buijWimj3xG4JMZo1818boZIg4nhhJnEDk/cJcrr6Im6eP+x7\np7nKatshVGQYinvpsJav6t0nkDBqyNPIJfwLBk33WS3w4I4l2G8RfthMqWMF\nQUe1O8raJsfncYjQl98Z2sVkxb0WQ52zQ8wcd+/mjzu91qGhJ97RQdnct8S2\nAOp8VWAeJS3I+6+dJ/w4mn6RzPCK0jUpiahV3f9FwiGiOqUdyQ0mP4TmD1FR\nDZQ4SEnec8hziHx8uD37O3IKaYlmPSIrQmP4TW2L+ZTROnKm1jOwT8a5+lW9\nx6wj5KoYAFdxcUtkrOi0DdcyqtM1OBKFSfcMeksQCD3LzSgeEF6hjtnOYs06\n5Q7DIy0lrPEn6/eenqWROPUaiFMsGXiAsInNDyoBWvJ26zVPOwFLfvuB3JyQ\noCSVQ+X3eMZthaQCYYbTVGfmaqDwNLGJK2WbmHQIL1mVqvlngaD3uiVxIPgY\ng/uJBV7vP6qJIu7/0/jkC5PjkSCYIfe4a2ASigVfOGvRrJ2659Fm8t1ZtLzM\nKo5i\r\n=zJO1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b87e40272ca11575274bebde0b8fd8ea32b7256e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-b87e40-kzmliapl_1644837166947_0.8191436168781172","host":"s3://npm-registry-packages"}},"2.3.0-feature-27fbc5-kzmmpai4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-27fbc5-kzmmpai4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-27fbc5-kzmmpai4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d5ac8438007712f889ee8128796d41bff90e1444","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-27fbc5-kzmmpai4.tgz","fileCount":970,"integrity":"sha512-YEObYA1ZLTupyHDI75rpdyaZopps9G7T/VILGHd/pgY2HTPJWPca+SKFg0BxWnuUQvU18cOfOhY57JU9g9VGBA==","signatures":[{"sig":"MEUCIQCNRgJ1jrSbfpsbr3CqV8o01sFQUJHT61Yb9JgA7XulXAIgaCRA939xx+wtDVxDlquEEUAKm1xXSVG+HOxYyvXtxi0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCkD3CRA9TVsSAnZWagAAWgMQAJ1HRM+3G18g43deWsG5\nbmKfjj6puF/M+1qRsKj27aMWV3hoeRxnN2HedTFftgKdu8zuamALZmdBNdGZ\nxwqIHIlT4zxXhss3lLPlnJK5v9gkx5MXZH8yFGmkSlvNLO3EGhE55RgHbKWC\njGXXzPjEh0Hw9Ra41LFivXbQVWwI1JGreMQCDsX199e2FM94PCnCB8clsL/c\nQbo9P8y3n77OHSqcBWv483BUWLc6yjCvyC8bjRjRWnmFJ+2yGDkUzgTlmFEA\nEio4GVy6FTKyoEjt/qajvWVeuZbcTM/ngCOigpXC1mW3vMWmEA9lyUud3jr4\nAbVuJtgO5z+e30MxIE76EJ0HduXiVpH01Q+g/N8Q6hUE1MP5NKbE70Co7qm4\n4WO2est/l7k8RwERNCR1/5GOQ/w9A770ZfYXhY7eiRUXvcv5sJWSXrlmoFgs\nLoILmBRoH1y+dCw3iR0mOJY85NE3AmCSUebdM292MsiQ2/gOZFOgKzNDM596\nzGN+J4tceeudz0VjKb5tCNCtbt701NonlZ5B3itC2dYwNE1KiOWHgtEGifem\nbGfmxuPtFiVsu66DO0KSAoGPUBuG3jbsJLlcRDWmogAcG7IwQ0VwafF2ogHl\nE6XZSVPPcMIzkO/a3/YpbvlYSuAdNAn25ApJZB/PlKMvauOPBb0ynoB89bEZ\nha0F\r\n=rET9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"27fbc5e7e57ad530b8a8edd0f23443fb27a91453","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-27fbc5-kzmmpai4_1644839159661_0.3239505520235195","host":"s3://npm-registry-packages"}},"2.3.0-feature-b87e40-kzmn26da":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-b87e40-kzmn26da","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-b87e40-kzmn26da","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"62d8231586fa0f995b861c2cc79d2dca6ce666f4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-b87e40-kzmn26da.tgz","fileCount":970,"integrity":"sha512-uULu7r2bQsiwPdmGaG1qfU/ghh0ejCkqY8Lff89c9R/4xFUIU9tfV+rIS7pDWk3OFahEOHz+NhHIgx9IDQEXxA==","signatures":[{"sig":"MEQCIFyV72D8K/wdoeiEZwhN50HXsFLxBL2/MNHOHgQFOI4fAiBQXIfhUgmWUaHbllCWevaQXVJg9272AC/MuVmm/h7Hiw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653811,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCkNoCRA9TVsSAnZWagAArZkP/0aurtvdUuL3UibWo3QQ\nkn7l6dxgMNqXv3TT1O8J57RfLbmMPmxEB+lZZqzCjpPYEz1oNSuA9mUBgHX+\nnrLtSTon2jbEsIIC/xanP1ddWWWoor6t9YpIzE2pmwZFTX0Xfn9qDzMoU5OM\nuUIv2/7LPiriulJ8msXvgeRPIY3HBE2KIFNegeneLZt6HrV0SFnOSAG0DvhF\noigKmSHRsx/JKjW6n8rQOJ/KtKggLqrtIjEI1zQfd2A+N9ZDUie0vqY5MXJN\nt3P+hd+p7kUQEw8GnVhUcw7J1vLATVUJzSj3kHOr4yF8RrBLdz86F3S+PAL/\nh/w2qQHsHkf1ex3IuwhQ9aXM3cQoGKSulsswf1lbjj9GxAyFdpJCalOjkjU7\nksGJzunZPB7qJuBw7RSaDJHokqB3Ikc7A01+5N0GRZm4ZUNE2o7wcF20ZLWJ\niMM5Sfrwod5hdpq4zhp6Q2/ySJ/qXFvDL6pqiL4ZJFmwRiCgnWB5fBvaBUb3\nTMEFtvn+AhZQE8pXXB9Uj3hY/d3nMcezsmdO/iHrvWRSVNsJIuzq3ZSbfhA8\nOKKfKwisqSzYXzOsPeC6QsF6Yfn+ZPLnjtxxq6rTjr8ABxtdFozkpXqa/Mxo\n3e2QwWTX9kDyH6+/1oZSCyRyfve511SDQ4lsvX7WzW0W+KqdV6uFdLFiZ6XT\n73qa\r\n=RAc8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b87e40272ca11575274bebde0b8fd8ea32b7256e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-b87e40-kzmn26da_1644839784212_0.5061529716072668","host":"s3://npm-registry-packages"}},"2.3.0-feature-16ee85-kzms8zae":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-16ee85-kzms8zae","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-16ee85-kzms8zae","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1ae89d9cc1396062ecae71b9172d4cbd8b48371","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-16ee85-kzms8zae.tgz","fileCount":970,"integrity":"sha512-zdDp1ulFmKWNlxEqiN1QJJHfdIPP3s+6ina/Rvn5VBjkAwX254l8Oxk0MtU0xkQlcD8uO38pghD9IPDLq/0+Hw==","signatures":[{"sig":"MEUCIQC52I1yWoLlp8/WuU+kwXCTFPBrsCYYvexsGbMGbXcHjAIgOqmpE7+p1KXBXWOheOCJDYfZV30FsbYFzfDXAxXndH8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCmVzCRA9TVsSAnZWagAAa58P/1Y6Qlx5Lg/cDEXzYriS\nC/Id1axJTQcboEm5268fXmHLPMUvgwTOu7xoBRErQaUiRK3Js7ZnwREjK+op\nrZWPsxkScE4yucjWotLl3I0uwJlidFR9n4LVs7hMk1aW0ZVtCbK1gIZcHJ6f\nM5hN8viHHuw5hegzU/klDlL7JX4nZOz8MoBjy80Pe1ZLz+oNebnVyn444CeO\nQ6hktBf2EEiWUa9BSZBTQesLGjv7UrddW82Vij9exkzz+VO/74feSVt5piwT\nD45S0rdl5SE5/b6kGQ0lNLPNWUwHbQ/RLhiIsC2bBfqdQqZW3kYMcGoNgOH+\ncWcgxbAQZmt5n2QnJ1Unaaghy79jVrzg1hbGxCqqR7Z/x4jdRDU3UB8ECo6Z\ni6xc/26pceuD9mf5ESbMeuV3Lf2IhiWi61AhLqTCmHNVmRFcPGq9f4dF/FVo\nKtap1w7MYVt7RwJHfxUKR60HBhj1Nt6WgWMfNhMrR4QGZbIhtkHOl89+8MNM\n2hk+fnmPmVoa1tYR8yLxd67dp8UnY3iwtO4Ym1MVZrphDBzJOZLtQen1j/KD\nPRliHSOAIrVTano+c3fHQmsYg+pN+WxjijAzdaULlGmtB3SyXjs6OPUXw1SP\n6exeTWJVk8Vt5ZWCrCOOveJIamdX4oFGO7JkjSeW69GJGl64nDYuH08stooJ\nhwBA\r\n=eNtP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"16ee85475bdd9339dd7e8bf7b7676c4c598d1d7c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-16ee85-kzms8zae_1644848499696_0.2753162396381996","host":"s3://npm-registry-packages"}},"2.3.0-feature-3d0891-kzmwtwls":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-3d0891-kzmwtwls","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-3d0891-kzmwtwls","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0096bd10f22d512e6c1e88d42f57cd2aca5340e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-3d0891-kzmwtwls.tgz","fileCount":970,"integrity":"sha512-gTeXwFIXxtnBK0dqVZDe+DIFbkXGLhrajQa5g9PUKupEI/5mBgpXmnxtC408jDRCyXn/IPKc0Y490f3qZTSyVQ==","signatures":[{"sig":"MEYCIQD23gOshsT6fy6z4z0j3VQJFR0rEEDFdvuxKng4d+i2QgIhALP0a64Ef3fpATsKQsQbo3TmIHqIs4wCTBAn1+GBloP9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCoN9CRA9TVsSAnZWagAAyR4P/iZdZIJN/Fv0XWifqv7g\nfINccpINHWTFVeOGaklOkJay4XzCa/2KaHhRpTHhV+3VGXFPv/jI4CyrhH3d\nyTxYg9CSTnCAROB1Y/AZFP3eI33hrIK4W1cjMRJyS5bcbDjooSGt4/TcjNd6\nlacVYtZJS2iTEc1Fm51KC0GPrMxY/C822vGU/cUPgharusT5CbkP6tilh6Of\nniOigQazlf8FB9JHOofzxkG3BjfD79w1ioqWxd0ekvrlxGPu3LAoYIrgOw6U\nhlHqoBod27JCZXnWLnzB5+bleRQmGeDfJf9+xA2J+F9C/M3QzgvVpmEulaX7\nZjamv6rMEmp1B7Cshr2+q0U811DiiVNMpTiGUbmubOQdlSZ+jbwtYIBUjgnq\n0TrjHtxDc8/97mNFDPSCwBwT7DFdMnibW9UdouvilfPnDvN9/N/NKq097PZY\nWy109azt4ehprvmYbywXvPfiTnHgpp4EKpAhrzYSwTgu9Fn4eJzl/9lcEx3P\nkzt0OygkX0hlUdZdk4RkjsmZHvmo3UlDllGNkm0Q/XX4x3hHmK064yeXrJ8Z\n9sL/dBfPUHuYtOqD6eKoFACyju8HNCXLT0T4a7pk9Id/1sjfNtOcnnxMsvhE\nWFl/9XoPqeGfIvqbwjYeIxrfp4Rvi5GigMaAT7l8BegU6o9TSncNNJgPvX9N\nsvfo\r\n=QSVu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3d08916050ba4a70708d8509e570b102bdba8b91","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-3d0891-kzmwtwls_1644856189161_0.9256730513744049","host":"s3://npm-registry-packages"}},"2.3.0-feature-32c355-kzo2c0uk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-32c355-kzo2c0uk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-32c355-kzo2c0uk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dee3a2a63f306765890e89b1188e007b8f7fc138","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-32c355-kzo2c0uk.tgz","fileCount":970,"integrity":"sha512-zNIr+3x5IvETBMRpbpfxmdKTszwfZk+CnLzXBMwet5kVRzSftU0Y26ZDXQNx9S03V0GitR/SRBRO80+ookC1zA==","signatures":[{"sig":"MEYCIQCc0Bn5AOEPsdDm1NQJFWEW6zmia0STO+qhBezrP5dBIAIhAMHuIk0Bmm3ah6b6nqzMVV95WG5s/yZZrceG6Yuy7UAT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC5O3CRA9TVsSAnZWagAAc3MP+wag1BEgComuAH7D2mSI\nDZYn8I31U8DAP//dG/BuH7ocmQG8fNyqqeceYc4zEMAaT4+U55odfWE8VtEM\nTGQDkwdc5XOuQLrS7biUekfX9HVK37NhORQ3BRIvtQR63PcA4Bn18ciYHRH6\nWJ/NOMxJq2Ta9DVhzy7eD5bVk9zn5ACmt9stLR4glpmR7c+sKZCe4wQY/iG+\nCQMp3HRu/yQazU2GJeW5Oih131F6v7K6ePtKDitciLBm0Z7c3MKURalhC7hh\n8/gqMyaupgIUDF1bD4ZZSy/gWIL4DxCtjUFLY1BPbjHiKvNg/wyhUUS44T0b\nerweVrHh9qWIX4Jsn3zYBX7km6jflUVUWonKSEj/EJrjH+GTWn/7qVxjkeEP\nallzJyBoUVNSF7QRbmXWrGYm5uHaGsDa7FesOvsp7A+2BLdI+Tm3m0pgvVPn\n7UMfRLlN5NVjlAsdq0xBFkYYpAYEmgijGWS94a70jkMtXzltLa7GDvF4ZKay\nTKHjEdLLNO3bkd6Z9pVp6fg0Udi5WTVh+6Zhjm+8mzR00GwofAn/eBG9JMpP\nYghxZfszQ11DUSCRLnripdQWN422A4cRvWJpIgvo6k7wv/BntLDBtH+y3pUj\nJzD6rGe32jfe2bwYcfyAltfTHzbOUVUuEkHrcFInIDMtFXofLDZQ9jWZK7a2\n4lUi\r\n=QWvG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"32c35529e04ae4420d75a62d9e82baece711a811","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.1.2","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-32c355-kzo2c0uk_1644925879114_0.23944951977471507","host":"s3://npm-registry-packages"}},"2.3.0-feature-832e0c-kzpem4oc":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-832e0c-kzpem4oc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-832e0c-kzpem4oc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b9fcdc7ab9af69f4a538b096bf515bea3ee78fca","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-832e0c-kzpem4oc.tgz","fileCount":970,"integrity":"sha512-J3prwyOPLZsQvodQBNSznKDDYHxk1gpnGakhkLM1zLZQHojup2FLKtwpelB1IR235muizDJsjAAEPyEoIwE5yw==","signatures":[{"sig":"MEUCIQDxksMmHnMT+zm0Wk0YYhiMOLGQinMRXIXWzQyWrqh9RgIgSBX8Y/SkfavtVm9UNH2RhAW8xHqJRe7TUBl92Db+XWM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDNCKCRA9TVsSAnZWagAAaxkP/RFwiI3Ar9lmo9s6nsLl\nihu0tCyR14Sn5F0hM1wx9eqKdEGiOgERlj8xhWNjdhdZWgUR34vg6/GMBDAg\nUjDq+xMmL0iSyV8qmczbkM5XZyJUyS/TS4C6b8GUismniF4l6Nawef4w4Rsj\n1oFI7NNe4SyzmdgJSuvrxsTogyGRQZstnI8oxUZbqgHhIRCgF0Q/MBWvaJmI\nC1u6xubPwfQHwvVSs3JhdU8A+V7QRCWaVQOy1KTj64ySl3WtSzULVaGhpyrM\nO/H7N18gbiIwXdwLV5Lkdk+4syafEVE9relkdEuHa80zHVRDhqhBW/2sxiJe\njgSYVUz9IOQYva806fkRrRh9VD7JC1gWXR0i9qQd/6l74ycVWQ0KGG8RRoPn\naDSIXv267XJ0guF2o2M5Xo1BWrNTAi2QpFzR0cVCvkvmhUbfA9C+dXMkh639\nGhG0B9DOihNI/QnZrA1FP4hsEzT1U/Mmvoi9yTw+F4yW/uv/URbyyzNx7BkA\nyXxaanumdyWGb2iEnfJoRpSLmbHH0YKgKBAR+3jjlFEyeEol4RisbUf07sAx\nGlw3wSo0oPWH/5PS8G1tSal76FWBoU7dn2bbJ1GAhZu2tDLk91hNXUKnwcod\niLh971SZBjZky3lMru2Qi5L9TZyOnPrLaNH/9uBzeHuvk2mDoqKgCdO6Wva2\n/ghv\r\n=hf3/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"832e0c8d4a6a4720a946051624cdcf154a56158b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-832e0c-kzpem4oc_1645006986615_0.1305739879251202","host":"s3://npm-registry-packages"}},"2.3.0-feature-0212ba-kzpew4c1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-0212ba-kzpew4c1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-0212ba-kzpew4c1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ee6deca3ff7366b212717fdf4925d93866bee63","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-0212ba-kzpew4c1.tgz","fileCount":970,"integrity":"sha512-w5rTBYr/BUfK1gk+onvUEDNP13X47UO2JkPpV4hdZBw+i/aUMIfFjCVbXfQXL++DL5EOzlP79Hc2f5UAiFomXw==","signatures":[{"sig":"MEUCIFJHGwwfCl/bMK6qPmMR2YFBcIQEtHpJqezePPCnZ4qMAiEA1xnMObPJgDM+7Z7KHyWiOk0GcYtnodFV4ozhaj+avZg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDNJoCRA9TVsSAnZWagAAChoQAKDx3FhL5xqQWT+nHW3X\nAJmh6+2kldEHJNwqiJT7fshHkFziLA7dYa4gHbvywVEBAm47Rs5INslKxrYQ\nJTxxQxlIOqF4lfhkLd3DM8XuxdoRwqlWYlVN0XzmZ+pslI1NN1hK/xpdZu+h\nSEnfR1Hv88wOvxqUcuY+iyuCT3VqLAutAs5p+AWb1HrMVvwX45VXvb1LGObX\nwDA3RWElvYzzyA0i7eGLC6R+xcV31yMu/L/td3ugmW/8y+F0lXgmS+BuX/YL\n6XnYC1zHlP/SYGsHCP8+IZ65uWwHILus1oIv4aZDaFdVrubSRrgDyBVtYfxQ\nH8RcmvdlYp4gzxQriV4+EEEC2ULTIZ4KMCzhejSLFplCMbhliteFwyTTlC+Z\ncY7hiOzJxHMShb5kR+B7cclRkkuXeyL4AKnSPTFowi7LFo2YqxIz9a2vl7YN\nrzEeuaQh2eGKdnxZ2O+KI2NHU/2D5cQsqzmaIAh4kyXy8dW31Et4OcNgjbJ8\nbW4EVZuPJ/98gNFS7NdzB0eQLHXMBFxF5OpYvgZYkJgdMCD+x/S6yxhVh1bn\n6FqUoizNYaTqBxDjjbRxE2mO9Colv0aSPM99iItk4brQnlu0NELhrujaBLAs\nd9ETq/W2OOYQfXKCnbMm0IGlQW9903dUuh/KKJavN3Ok6QlTARa+RpMg7mv5\nBRyl\r\n=+g3f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0212baa07ef2884eb6af1c64208e2ff6364ebe16","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-0212ba-kzpew4c1_1645007463947_0.685304411055196","host":"s3://npm-registry-packages"}},"2.3.0-feature-164c81-kzpgyxr5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-164c81-kzpgyxr5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-164c81-kzpgyxr5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0bf297b947513dd449250cedac9209a35e287d45","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-164c81-kzpgyxr5.tgz","fileCount":970,"integrity":"sha512-/SojCsswCZm84T6pl8XRboqhXQfvNN0Fwx/y7yyY6asCpQe4GKISxf4ryg5d6SYR095MFOGYAD6Lg6MhmezMyg==","signatures":[{"sig":"MEUCIBr2jPtS52byXHZRHffKRuZGNhCOnFkpDc4ONsG4dD/SAiEA22D0U3OuVTBXMdg/3ArKM4vFai3wl+58H5ENgpRYOfI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDN/yCRA9TVsSAnZWagAAwuQP/0pXdKScn74jqYAG/MZ4\nSPuPjrh46Cv83Q7NGiorASiL9d8UBOkiA3XADYfa7Q2mziMTy1HZWLQxC0q3\nF8b21gXGWXNKOGn0yAJ809avnnVVpNurwJjupCeFg46giVEWzrYmEH7fBbxF\npbdpvgTb6vF1BOeenl6iXlSwofn7DADHrm+OfoLyaJabOKjp5WfNbmGoBbS/\niJEPMeBvit8oTE18iY+fcoyod7dTyvLMJs/uCw+dcLJNbTgFncwjpGPN6ZVH\ntHKgxCGe0aMe+J1Nb4n7+R/AFBARUDDu4XFINDNzpyRK9v457l0GGEHNJ42w\n1F9eqQclz8CvgaW2NPDUPDLo9S3BRr30r0gb6BjZxDZk+6SXScUKMOdQZ2Qq\nKY4vAQl54w0ivxdBWzVhGTiNJYaFDHWRJqF5d4B9WuazBy09r+yAF8AV9au0\nqjnqUfxwwMFwPTChXPcYUfwhiYG6RZ2I695ndtBeze3lA5C++jYtK9uKZZE5\nV326Nffa5iWXqZiZwWOuxNu1mqyrn9LQVZojCmT8fqopfurAEbSAAUI2KBkV\nNuF1BBDTLTlGNOsyJJQNgxf6kK8VNRjC3qxWTKlc5kewl+xfKw7olrl6nHIL\nAAKlZ+6yPUPTq4vjNtSnFW1RyngpMHvoPBkrcTNgMmaMEgRMHnFWl+v1ALCE\nlxbd\r\n=eD2i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"164c81f45614bfcb60d5614dbc521d0e0ed17880","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-164c81-kzpgyxr5_1645010930323_0.5689616635435997","host":"s3://npm-registry-packages"}},"2.3.0-alpha.14":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-alpha.14","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-alpha.14","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9cf971758a9a336445b0d591ed871d300e6ce9d4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-alpha.14.tgz","fileCount":970,"integrity":"sha512-ZlbtwOe0/snJqyClRvRVzXGXfoALxyvBe3zZlCyse/KQdepmp8rBksZjRtepxz/QtWMsLPCkmP+bK1lpUEF0Mw==","signatures":[{"sig":"MEQCIC6l2KyEp7cdH/hrga5j5i3m+mbQM0m/1gZ7OIdBj1oRAiAo1eXHWsdkhpwOFy1og/UXF+kAvItvMl9/spjgEnNGFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDOccCRA9TVsSAnZWagAALVwP/0/Q9RCX56ax8cNH1tm2\nApwchu2xLnE/xr8eChSTesERSu1aNp5VQTHSm5L2LzZDnRrpXKCelFB4I5PV\nBywrrnAduHQCrWjxJWIgqToJdST0mynJS3hKZUnhKCt6us8LwanuStE3Vm9b\n4tZ4SALpVY52S/CtMGR2nUCHQevvpCe7uZLfcCORQW6JWeUo5JtsPbKAzpSb\n3Yoy7X+F6MugfBzmjvNvsJ1ZwZ0MMNPQXfL0uWml3SHoVaEPNSEh//XeoVlC\n2EACk3jG6L+iBPRHWYtglf1kDJLEigMMAxb9iG1PhpI5pp+g+nXWxZbIXLwt\nTcrbbKK1liItIfcqe71A1AfpFMbMLo9F6WCBxJqdlFVmYn6rry2q45tiLUrE\nwWkdx3/1QebhDPeIyotr0UeAE/pf5ihMaLIi6sh0cLGdrnU9XigzRlSvzhEE\nFlzsKSfzk4CeL7+loXkTLxKFbwaLlP0wbgr0HfJJCrL174GwHd/dGSztoQmN\n4unVTzsm9WEgv5KuEjgk+ogAuJ6LzrFvNJCexljSwKuL0A0Lz5mHrHKyq/PV\nfOvkXXfPkGT967dyCpzWKD7IpECGrQXbPneG78LPRdB6eMaFoUOeQmJkxtVY\n9w4MMArEmgoJdsD6YRs+9GSm9TFo4zh++ck1ah7Vr1pcu3YEQSPbnbBG2GoZ\n7IGJ\r\n=rTYb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9a401a1944eabf12797b217fe5754623144a06ed","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-alpha.14_1645012764018_0.25588528934063515","host":"s3://npm-registry-packages"}},"2.3.0-feature-5bc8dd-kzpi6skt":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-5bc8dd-kzpi6skt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-5bc8dd-kzpi6skt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c609f8e79cf2ca51ff1f7df9ed277d5522389c02","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-5bc8dd-kzpi6skt.tgz","fileCount":985,"integrity":"sha512-dbHsKEZ7nnNDe1IV/ZauOm32y7aToGuGt9YR+aYkpRNgxkgME1NhG/48iHWIRkf3ZlSZ4D7kFJ+/aUD13df+4Q==","signatures":[{"sig":"MEYCIQCEMYw2yiIBMOgUnAXimROL2HnfNjGNcXx7UR1xZTpHpAIhAISKfLigkMcaVTsjE/zYu75uJRjRVNmkHChbzU8MENIz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1662375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDOgECRA9TVsSAnZWagAAwuIQAI8Lt+ObifBqPDFPcOPR\np00BkSB+x1DEae0Zo9F3oThLPJ4geuOUQj+l5xReuaT/UKyGhF1ugtE0TFl2\nls/7+knjC3k5TrV3ouNxRz+8yyiVlnudRkej4RWrwk/i1LSlBM8O/dtP0wAt\nFpMnjNxFYwJR/3PkiaoqOXaXJxORDUUL3x9kGYmrao/PgVCf7FHyp7nfhW8Q\ncyHuMuZlC9oCLOWthZ3J6HiqRdohJb+t0PdLYHFChAOxHkiAswVMdqLhbspZ\nUeyRocU/ipmNhtfXaNjci4RjWpBtp6fH1V/gcMZclJIdaia1ZvB+igNIRwnG\n9a7AUVkeOXmGziDNR5+yeMy39Z36XQxianqu7L6qf4+7D4vQ6tcsf3DlGDpw\n08jSkYfyQQoCSMYwivvQuRs+M1lrBhkAofzdPUN7V7Jp96DbZsJl6LWLHn/u\nLYiTU9tPXJoWxYnupt5R55viPLhaBoOTLUgl6uCbluOg8iBc9Vn0BhLDOPA5\nyL3T7N1hQRRXiMtXmjLvN1XpQckkDgeuPlPf10jHcvOo64vRYjGGFgsSDOXS\nZWtnQVmcSbVHTRuNI7A5f1YkWp+Wqzd2TWqzxQbiV9RB3lDDo/GSLrgooW89\npjoMeIATJRWd36UdoMgRReTHm7nS1NudLR/qgiTpfMG2D3U/I1HTK4quuEoK\nevAj\r\n=Y9sB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5bc8dd538fc54955180f8e077e85705b951d8a7b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-5bc8dd-kzpi6skt_1645012996255_0.09607819031877152","host":"s3://npm-registry-packages"}},"2.3.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e8a1a0cc75dbe8d64eb5699b1a0d4815aebd524d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-beta.4.tgz","fileCount":970,"integrity":"sha512-UHs2O2z5owoLCJ88owulY/RfriZWQN49SW7o2I389FhN5Y9H3RpoG4JN0z6zbvGk8EpOax8bgT3NxV5HyonFnw==","signatures":[{"sig":"MEYCIQDghEP9lDAZH+1ZhFAtKw0+FZ0Y/HmNqP8ztbU4nNoWhgIhANqPUMmOWva6UBS66D/van9u1QqUC7AC8TK5291xUyw0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDRa2CRA9TVsSAnZWagAAvg0QAIsEJgz9KBeZxpGZtwM4\n0c4xoqmlLrsEO9Hy9jqXJsRVqcsON3Che3fZc00HOGhip0mqN5S+Ck6vft4W\noMn+QT6sXubmmgYazGe0hlTqhXNz1oUJWhzuNc76PpgDkdzLINMjBJST02VZ\njXfMSr+XU52mmmhRnZLPpo3dVJZJS1i6lWx5mFCMVbpPJa7yLXE3DkiLmeEu\n/j4SJqZzmGjFubdVV6zefG8t6S8aLWDx1sqvkqVgoArZ9HFyraSkLqReL1pe\nPmfhs9FLiCPDK0Qm0V4mf1wVT+1EwaDdJdx4JSc5SUVBYcYR+nh9Pxu9p/7g\nq9ZDskQEmLzSR/+yXMQtGsxUdrKdBLAgyr3ABMxQJYZkapKLs3y/z6QyC1e+\nplJF1pwjVAlrfp7OkYA4tow9WED+qr51vDDQIO12+OISXGWSLaq7FQGPjVhc\nYjNPqr2BDjdpe4nFPF5nEpzzgUUqjvVr4x8CQoq1FRCb2GF0B9UR1AgPQfFq\no8yI0KmW0b+EP80h+t6xab2M9mV8cQAkpVJIuf24one0Ylx/NpSumKVBWaNq\nZ845vYHeBVDTAQiJoepvQ9M915k3i6r9wKWpuQXOxTCxJl/QVZRBDBwgPUfE\najd1lEAY5jNvljukgM45DAIY2Obd8WUhNqNXOQwA/RABzw/xdGtkunsYBjxU\nhIMB\r\n=Eu+W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"36d807919630f37b0931654b26b6c2e5640c1728","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-beta.4_1645024950409_0.10826899650312871","host":"s3://npm-registry-packages"}},"2.3.0-feature-bc7cd5-kzpqc3ru":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-bc7cd5-kzpqc3ru","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-bc7cd5-kzpqc3ru","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b2f8611f2f8ac40687e3faf22bc3736ba060ccdc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-bc7cd5-kzpqc3ru.tgz","fileCount":985,"integrity":"sha512-CpX+wd54Z1tHzep1VXiU4iVnUOKVDB1SEzsaQ7RVIY1GYA49G18MT18ifRog+g7XRRXnlJkkHWVJTkrqcDnxkQ==","signatures":[{"sig":"MEQCIGNZxNmcINdsaDG5vVFA11ufRUgk6fuu7ik7RTvhELhWAiBQqVkSIMKvUTYg5fO+OfsSm6SfxHcjH5ZQM+jLwPRL+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1662375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDR16CRA9TVsSAnZWagAAYccP/ishkOMEkuic/ola78WH\nX2vvNbWp9MX3m22AuSue9gqhGubUnxoMYDiHbzq4h0GZWO4NpvLQF3fFxxzG\nnWiWmmRxa4WmDD+Hj15pW/kR2c7eY8HfMYuf/O2fWpM1LpqIpCwrPJBOhqBC\n3igCV6QQySfkpcCKSo4wtA5LyyrbmlGkQ/c1n0tMuEHnBdtfOzsKIUGyS8XC\nq+UvfQObgJrPMw7KTJ4u4yFChendy21pvpH8mRb92bloKSakW2ooCKADesay\n3ZctrY1CgLz44spvGxKF6R/BzI52qSQv9chXvFogzXYhdWQonM4NDHXFpUCS\n8jUfmD85Z78R8OvrNGB8J16MIJqW4xULrkW/YFPbI6Hypy1KmGsNacY/o8vu\nvn2jZUlsGlgZQ+ABRS6u1F/1cl27nPcqUpOIRtvcE21Gqw8sH6FR2odPoaNF\nfTL0ykF8uBzucht1td1pGq2D+FdetzUMel5bKdqXZAbWIzh4YIYaXBqdm+ap\nG+swKXt1GpwbINQfzcMsytjauSiEHhygQ0A2tOSEVNAOyfJJPC2haHDNfR4n\n/k2ZR9cSAZC4GlHsat7eroIAFaYn7EzW+MuppzVJsXwWNA6H5JJMZDfcaG6g\n4E79tIzfymo75d3MHuA0gLj4emQzgVxfa2/GfgkpNpTVUD44MjdA7ZV6kDGQ\nKj5k\r\n=tjCe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc7cd57b0aeef34c722fc6da04232b8934b51b72","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-bc7cd5-kzpqc3ru_1645026682520_0.3452305272700935","host":"s3://npm-registry-packages"}},"3.0.0-feature-849b4e-kzy64v6f":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-849b4e-kzy64v6f","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-849b4e-kzy64v6f","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6cc2ace74abaaaad03bd9c6e327d3fdbf8b3fe9b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-849b4e-kzy64v6f.tgz","fileCount":966,"integrity":"sha512-az6lXeF8+HrCNvPmFWHEbXoADQCSP3F8dqi3qFqzqdWXjR4LM5g+9pVP8f4ELNpkExb3/ams+RWETLs+BWPcBg==","signatures":[{"sig":"MEUCIBoNkHHvWUzvfWFzVHtKlAlO/YLbnvYea6h8ff5hTj/5AiEAgEhRhjiDbYo/3h8SNpTzldESovPmtXB6c0k0IM8gYGo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1285549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFOk3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPFhAAmVa3eJ8jI7PdMZOoqcQ/Qi8gUT/4bxFwV8+73YE3sltwNfgZ\r\nmiBIC7r7cmysypkToIO2sFwjm7yejdxudrj8ZQK1bMVl2REWqok3LWeEmSwl\r\nbZHZB/WM57MBlwTiznq3XWKjjBaQuzkSv3c1jE3svU9ddypzImJiwsS5IpBA\r\nbM6Kq4ikaTMn6qo9ul3lXmPicDG3v1OQH0wap1nqN4ej/d4CeXZRllqQCn8z\r\n1fQxn2nw8o/6tFLffQQTqsStDNtqJ93Mnm5LwrVmqs1YG5zIqvK8g0BZB9Ks\r\n95rj/LS8dDM3vx2OkHhRHtYI1CgzAo5ruZ8rz5uQiHG74B9w8MhhepE/pNqh\r\nic3SOYtM+p5XUyyYbXpXNXXiW9ezyZ76M0Rk/zxU1LPuyH2AxGjbzAspNRVI\r\nSL0BsWdt9LE9fhaj7muAFJrxuuaHY++fsxbgZO3Q0fQsdeoiRdgkWPUszEH9\r\nLJ0+9db1FLtPs2Q7oUiKhn0o06XIFdm/TMXC3mLjlZY/Nu7ZJG8Pn2UYVHcW\r\n/H/SSX/S8LK2orYYmnf+RwA/Cj2qQCOybALZofz5qtBnohlfiIRhtKV+F45L\r\n7p/glEjtX4iw3F925bkOQAsXJNwFl0PWjvIbnzdWaeFQ5QbQFtQjqMnZAVSf\r\nyvfS9YdS5ZRoPWFLAJdfMByZor7H8ZBd9Tk=\r\n=8ctU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"849b4e115d1d0e26b258f7c30ea4b2170048c545","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"obivarg","email":"christian.werner@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.4.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-849b4e-kzy64v6f_1645537591730_0.39888371972604464","host":"s3://npm-registry-packages"}},"3.0.0-feature-e534e4-kzy949qn":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-e534e4-kzy949qn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-e534e4-kzy949qn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a639028b00412f489d48364bd14ac6535d692172","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-e534e4-kzy949qn.tgz","fileCount":951,"integrity":"sha512-DYyQci1dLnM51T/jWtFxLl41JwTZV8o5CNdkdqH/zTjB0n2qNSzgsCWad3KcGh5AOkXD3ibsA5K5RMkj5tSj7w==","signatures":[{"sig":"MEUCIEHQHI98Hmb1698rzgT09eAvBFZuauOoldF71rIpLS0+AiEAizHDRHoRegzyY5+mj/BwFdBsgJsWd0uVFZr51x2KI3A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1281025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFPptACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2GQ/+Nv/1ZiODcWlfsvf2rYsm0fCvsiw+bYbZLccH6LE2TDsunD0+\r\nMfc+2//Ekgp3gMMdQoTroZuOz99XOdVClAeUcfZb+hTrWhyfZOA2WmM2mpeL\r\nnBGqEnIRW47bHo95Q+WPpi/DF8+kL2zg5moL2b+iKv+MVDVsI+Lg+9zWr8Q4\r\nNMxsfpbzLGS5fXDi/nZSAe8wnCXoFbQ7TmRIlwIrp2poxta51vyta5wvypJU\r\noR2GNInZEOLMnpDg6NzyFsF2u8MwG0WtDBjSnsPnHlR7u2vy/rihMfuEVHRl\r\ny/LHLVIb+jypfmzlZKBi8eIvz39drxgSWw4t2VE6PMUSWjHH6IykCZDrx3VF\r\nQYb7dJ3NGw9clV9SDSOa9yqqAhPq3s+ek9nPEyJ6XOHHOh9q4jsgqnHLmBRf\r\nbBwuhaYlT3S1pe9NateoVb3EmcYWGBSC44HfLehpbpukza23XzoPG0V9m5yi\r\nN+SAoxpizl9r8XoMniHFyF4VDct4OhI1k3hBPgLpxMWx62crjnOjf5hVHWpr\r\nUVTvTvz+SBG1GSz9FkmCMUCe9liUxr4XJFdQidce8S3lIVyXhOJzkZQUlSQi\r\nuaOpF+qIK6jjoQPgLmbzmW7XQoONux/VC/PndmSGPgFTui3XCGMu9U/p/k+v\r\ng646J2pi3ZkLBs/FRf2lgqvvpbiO3Y3voPM=\r\n=bUOR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e534e4ccece14326967ecae445be4af386e0160a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"obivarg","email":"christian.werner@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.4.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-e534e4-kzy949qn_1645541997355_0.17206511441773098","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cf230db42eefe3d60066de1a9fb2b969e0f25fd5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0.tgz","fileCount":966,"integrity":"sha512-izL1Ht7TTXxEJKZslq3jN0QaMrFRQiUi50DJ9cZxLerxGL43c3S3ohRYzHrojwwXkY+bUoJMVRz7SLdg+k/YFA==","signatures":[{"sig":"MEUCIGEVTlK2nAWsOHdCzty82uKDYetAOoft/sQw7CclKlnzAiEAmntpe3fmK+EzBKf3MHf/q8CAbe6Yp5RxBoHd2MDznjM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1289040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKImYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7Dg//WmbgLD3wksWDBZrZ0YyFoK/gDtKBQaFxyp9O24BUD5X4q6nv\r\nUqmn6XxDo4tJjlv1CB96jM1xPkHr4QhZnyvbDIWl/z2g5teei53KxtrItr7i\r\nL3TkreKglq4KVIWFQM16PqaK85MeYPWUYPr9FjfCx2oFtdMayn6c/BAC3K58\r\nXtCWmSlX/Wo8NRsTbiH7kmREb9pDDm4SAFE+V7nqxwYMKhh/bNarfcCygv2A\r\ntcXhSjMUNPtDAMd/RDyrFKw4AbJZmKHI2oK+6Ul6wf27P4eFxRY7QwtOLWAx\r\nBjJUALCKzPScNsqicDX3kqKa534JLDL4jO2hskvxOVj25BSv8H/TbdivF+0U\r\nrt652MgdKlzWCMXB43ABRvbByxN6WQ/+ZmbwCOtGv3ihp2AiafdKQO6GYPtj\r\nHcrdmHWd4fHEqkEmNJi4Dxc9oA+KwN+e620XvgaZNrCjPXXHLFKRh7r9Wu9+\r\n4J+n0v972TzRCeSsIEMTOOnQBD1WqsXzf8UxjuLBnv52L7qKIwL4hmKDg1+L\r\nGZgY74+6CJzBrd/yhdH3WUeWWImdg+RF/mq+1iW6HY14x5jIY+9FlBE578x2\r\nk5DTnGOXhvcHCS6GxuQSqlXbRK0Zxt5e/+L/fX9QerxPyQVvxQd6jW3baJ4i\r\nBfx/9gLQ0Ej26cLI/QWYoWMPN76BtAo+Y00=\r\n=+fOi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"65bc6cd9d5d54245b5388ce5b275a15c047e02f3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"obivarg","email":"christian.werner@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0_1646823832619_0.040018290677328094","host":"s3://npm-registry-packages"}},"3.0.0-feature-182af9-l0ktzzyy":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-182af9-l0ktzzyy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-182af9-l0ktzzyy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cff8698bd30fcc1acc4880590f9f184f24f51a42","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-182af9-l0ktzzyy.tgz","fileCount":955,"integrity":"sha512-BCXQq6UhsiG6KA4q0CWhEFwVUfsYeB9JC3AV+YfVENjBxCg9r6Wt09Rf6aRmDqgAlFhk4XBBiyCLNeCIggKSrg==","signatures":[{"sig":"MEYCIQC2ocQqoccgrkx2n/CCwM+GxYA4wwa3mfZW6LtFdWpnogIhALVG/rfaDP+d24xM568QXWe5gVw3PpqGzwF1P6QjoFSQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1646498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKc+aACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNUA/+L8JmXJzTKQ0kuDpcb6dTVN9ky2ssByL9cLbfLp9C0c8cPoEb\r\nG6Qq5EgZFn8ykGKOg6pHwtihobRYJgk581TjbkQP91UQWNhRb9Dw06LLlyuR\r\nE2l+LAokHK1DhppDra+wsPTwiV7KO4wcGS67DPwjpk6GG/kiXo8OTHb5CTwJ\r\nJBRvRWBusxGTM74k6rSXG3XiVSDlv5ySubOaH+W/rTNmmoWCMzkIcJTT9og7\r\nyoHuD9F3040M1r27VH7m2AbEWV/FKte9rcwKV8mNJ6p4m9A/m+CxyX9w0ZXE\r\nlkaVt0hTBu0hqf7BFpo0OsWCnm62yBdq016r9K5DiSL5X7DbIQov3lLMW6ru\r\nlVanWRGe9sEwMm7GQhhavDku8kvMIIcEKAa8JfkENvNh7tNfZAgkbqVS26FZ\r\nzUmp92ahvQUAiDNF90mS9aRbO5u6752VeTSiEjPgjXBIh1WJJRU8LurslDFr\r\nQQ0bqgNAuid0pvswT4oQl/dhJUf7tvNJDUBp8+UEWVcFFmLtH6M9u4+S4EJP\r\nMgghB3HlKYBKXXCstrG+UHGfZRQZg6tE7gMrE/AFFE5qtzBPqXo26wSG4rgp\r\nG03hfYM4gO4qaLG5M1TAA7XVcDOIVEjiyBQjfhv7Cdh+OTXisnqVBtM/J1JP\r\na1H5xuNMpFkYNoLe+7E9wGkdWvGwskaFAd0=\r\n=f5P6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"182af94bf4d76e8c31ecad1c52a3555c9aea31fe","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-182af9-l0ktzzyy_1646907290504_0.6676973784602096","host":"s3://npm-registry-packages"}},"2.3.0-feature-e4a773-l0ku02nz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-e4a773-l0ku02nz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-e4a773-l0ku02nz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1a50a4ad1b04d60864786dd44d60b655a4310f7c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-e4a773-l0ku02nz.tgz","fileCount":985,"integrity":"sha512-M3YPYe4MVXogQUC1CzNQSzL33k1usKWeOMXo4O+SSiHNBrXHYOYFl/m3tcgQkq0di3LB9ED2FVN9wkB0iShAqQ==","signatures":[{"sig":"MEQCIDi9VtLjFHcTJVN6KMGk6c6GDnaFREPcHKG/VoTp16E9AiAwEYp9rpH/5P6rr8/jZxY0tbsU2LUu5d2CmoZfTclfLg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1662375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKc+hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqY/Q/6A35CtLrRIOJD8B3dNSXMrTZ6TgbdFp5t4oz0ETmoZBx2XU2r\r\nAi6TBg6t+d9cjCPtuALHZli89fZu/viqEQ6Uhu517w1f1zmyVyqEiC1oNkeU\r\nEsBD6Wzhy6OiAC/U6FAK0f7vM/0kjhfatwbO/sKb7NKYu6EjHGyz+eSWSaoA\r\njFkF+znnSNFIycNNLUgomkFt9Pf95nWI/cIw+hA9dNSvuNmfd79k6ZdH1fjI\r\nFnppviZPiYx7mK/Iz3KbCT7/u2128j7TNko99VIov3fPzbaHNBklRaz51iXI\r\nE6dWSun9tMjDGrM24GsprNtVFF50dBdB2QgoPaufGcagBtbhH/OJPDAv560U\r\nAtOuiDZGruI5qeuwhROkGixSFKgphrevFAfnpcBQovsUEeD3Ao06xAcJvVQx\r\n7upQmV4jt+uV1iWHqBWPjMq9V8Pn7X/OoGFzc59zBkWee+5CF9jTdWyMmpUK\r\n18NcZz+ks1IIhBt938LeVUP9M9NaLlUh5iHlZybWoEhhjoX53joYnkQ9Btb4\r\n8ugeECSu1cCz4F8TMZT0xkStaQKK441QqYcx/chpFpY8FdG6JbI13MHc8yBp\r\nlNGpZl6qaRkkpSAWsC9aYzSnN8lvUJpXkQz290w6TbaLiKvtLvfYTWYsN1UM\r\n72tF/WMbnygOckUWzI/bFHYs4kFYdjNRf48=\r\n=G7OG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e4a77343342dafb50690d9bf1e73239a7b36dc18","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-e4a773-l0ku02nz_1646907297361_0.6101334763771622","host":"s3://npm-registry-packages"}},"2.3.0-feature-1ceb7a-l0qgvmbb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-1ceb7a-l0qgvmbb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-1ceb7a-l0qgvmbb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"95aa37ecf6c16ebd13aed4260be7f6fbe78aea8e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-1ceb7a-l0qgvmbb.tgz","fileCount":970,"integrity":"sha512-yBoWBxgO5aIl8rb4He62UYGuNEBIbGGLO0t8cN0oE88BR6V6L/76Rte9QDJ1fnDpJVk3Ku6Fq8P4lPcOqQ3ahw==","signatures":[{"sig":"MEUCIQD5rgc/T96j4Ta9Tt8xLDcTVuFwe8pFwCHzYySR5n0qrgIgPP6LlL7fnXMVQJEUPWpQVv0wUX0UB4Cmys1VHLrZMIY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1662851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLwKaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRpw//U05CBcjBWPZynkdYzI1EM7hmkGpCt0utkwaj8yLSRpcTTHML\r\n00N2EOLLDOu8YovQt6TLs9UjEvJTUP1poTdCWz7A5M2H8DH+7CJAOvBHPDA/\r\nMy2rzwDbJ1gwFqd8NjzlC0lYP8yyKdKUcVm8+tizfEL6IIdSFg0yCU3kiSVd\r\nuNpWCdSI4luYi7Ptq3g+2AmBrWi+zhVkdhhqPP5roe55Pz4DSdPCjrqQvbKG\r\nhh3oBb6/BALP8Ts/JxD9MSNpIb2GtEiijOF4HM1a2g+w8lxH5dpAIqLbxxq/\r\nQocs2KqVFWEDw19DmvRBDdLD26u3ZOsZKE3NbpUoLddLeeqXUnw3OLQohC72\r\nWTNGHbqc8JP/AUMia1iDcdBpIJJI61fWeEb5DrVvpYEx6Udv5tRw6+V1Vm5Q\r\nMuedBhuFIZTK7Ko/0dZdJSPkkNehG9AMxyl/v845sLRQ8P7mJYQxcFfPoO+u\r\nv46g6oK8JrHeETy3LdqjKOnHdfVUdK3j6NyFNBOIsDVca95KdiHnRGgbRQ/e\r\np6r1AuCdEi9AAFc2EgfKxqcEiXpN9pfH+WyUWKOr3Hh3tC7AMU+EboVXeB8y\r\nqU9roB27dG8z/b/J0qJLLvA9wOe8px7imBw4oe5ThpKTcNO8qI9EOtfi3340\r\nCzbne4Im/9Nq6D2q1ixhTR/h4ONSmnm0oyw=\r\n=zFGi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1ceb7ac3c044fdb4688118113df265394c4c8ee5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-1ceb7a-l0qgvmbb_1647248026598_0.15330961046205616","host":"s3://npm-registry-packages"}},"2.3.0-feature-d0d461-l126vchm":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-d0d461-l126vchm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-d0d461-l126vchm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"74cbe4c53b9afa7d9aeee2045974bad0dd74c2a1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-d0d461-l126vchm.tgz","fileCount":970,"integrity":"sha512-FT21xAUk1X2U4s+uTMnawkPwaYUqvc2a0Ya7gqyO7LitzYf+ljKihQReM9o4hGCJnRPM9HZuR/jRss93117anA==","signatures":[{"sig":"MEQCIHqkUX5PC6ucjtM5HmvMCe8gpeEuUTYW7OddW11hIiNKAiA0lLC+F7YeM5om8CNjg5xu0Uoo4cjtFz02m2HuSpqXEQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOdNlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUmg/8CpTX35+9nyqmglSNMLyUjTTjRdHXgcwrvb0LlY4rr+j6FNz2\r\nRYN5vMv2OxSv5LhE0HBmiMD9bNk3fmJtKk93Of8HbkI6MrnAcI5RIXAIsDoe\r\nQjq55l10XPry9CGIfJN/BYnHoHwGukhE82FRl/sR1TWnlyqyzBkD0yc8xjLC\r\nKrGBJPcED+jOafdEhutjl75yP6ZCFGhcGhQbpy1ykb9Hqo3xlhZiuP2kQjBT\r\n1zYyREGZzejAGuValrYgar9+2ChU3A/9I1i/44A9GZbha0CP+uxJliTHtMQz\r\n5k0enknxJYD9FQOd1qYowacen6Jt3gbXdM3pbjvg/KjyxBbsnIF3Zf5etWbc\r\nypQD5jvygl9DzcsQjPAeEvdDeNcmmnxxQlKNJqvzax0WPT4S1KjnXr/L4DKo\r\nPr91UnyZls6SMXdPrXbBbSdb9xMudRytS8bDCZmwDdh+2JV4qfR1NjikVSSb\r\n22mnag473VyswSws0a8gDh6aN8cmc1/qgvL0aGO3z+0xPt7SMADc7+npz5nC\r\nLMTXl00wAMMKr+dLdJACmC3bPcj20NQBylKCcvWRBN1ed9hftV46C5XgPHfe\r\nIbnFs0oO1X7zQf6893jwMF8CQQpGySTwRbjhYddKQwmwyCg7+HF9mVAuyfXw\r\n2jRwfT+ukYwWJ/OfT53Lou7aGLY5vaV2rMI=\r\n=HbvR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d0d461cfc9be5d2d27285d613a8026941e26ed97","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-d0d461-l126vchm_1647956837475_0.12807509874041223","host":"s3://npm-registry-packages"}},"2.3.0-feature-56235d-l128ulvg":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-56235d-l128ulvg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-56235d-l128ulvg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4685b15419a8b0ae737139dd0bc20fd0cb79d3b8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-56235d-l128ulvg.tgz","fileCount":970,"integrity":"sha512-amRdA1njBDd6xmiaIecFJYw0n+OKJzwuKYUcnP0GlDfVZKi+DyAE2mXHi8ylaTIaFhZrNWz0kj5yNekY19W8kQ==","signatures":[{"sig":"MEUCIAIpJ8vBnRxhNfxLOmaPXDjDKHx5VIJ3ezoYC+7f2z+wAiEAjUnhzdYT2bwJkyOheeegYX5JwhiviqhH2GT+wyjxjpw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOeBuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJhA/9G1K8KI6sq7fGbPoNYvkaKNgy8sUSteur1IBFtFVsXoCzPypJ\r\nDlvcm/+pdwKsRDjq3hvdOJ9pDDDRDvLldqlKjNCeagTWnA6N20pbEf9GOrDb\r\n6hAizOF16bEe6iBDmdhh4pcK8CrTzV6BKmNtHrCq9CbVpVu9VwBpG8jG9Xkk\r\nTzsuH3QSvIsupE8geDC1Z5OyXuH4iRYYS4dZbgQBmQY8upNxFhsmFMXcqDx1\r\njhf0yhuanglb7fbYTzbkXPblt35zlf14wfNdDsw6rTPqzvja9OaO9TmcOyXb\r\nfil+MtbFuigceTYIdk53MjFkAfIMfPj5r0pJk7sOc19GWuF5MymPmoIa5eHe\r\nzwdqF3fo8za7PqqAAfo3pJFmntiOfQHvcHAg3KHb5JhvgZdytWxBnIN6Z5SA\r\nE+J1+KbVSP1V8TrCIWh4cDBP7Y1LnrPTsvhmKId4vg8LBTGh04dOOUe/0aUU\r\nZhb7nkC6/HqO5T9G+P44wAs1t/MFD71h2cbHD9ozfG5jPyh+HIU/vt4+n3v2\r\nZQ/+9Df44fZBVigI3zJp6yx2EXc82Q9Tl1s+gJdXTvNn3X6x7AfSHpFQYx2w\r\nuhSdrDoSfFNVEUMuj2x0WSoN9lbodXUKANg4+zLpkbnGHBXjJavqqnVPsXQl\r\nOVVCCUxiJ4ypXDShGEvQT7MBzwRN0AxJ+2k=\r\n=/QLm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"56235dfe7d87e0e2345690b2803427629409ca46","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-56235d-l128ulvg_1647960174249_0.6570350282596855","host":"s3://npm-registry-packages"}},"2.3.0-feature-c8a43c-l13dzexv":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-c8a43c-l13dzexv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-c8a43c-l13dzexv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fbb8d32936501272707870c4aa7213986ef48eaf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-c8a43c-l13dzexv.tgz","fileCount":970,"integrity":"sha512-OETjdObHbfRVPUmYzezpFe07IbxE9Eb+d3w3/wB9C5Esw8E6CJJK7ikPNeFktwcKJcGWYHwgNP23m+pp/NMgog==","signatures":[{"sig":"MEUCIAD3joTPlZljVI26V4Kt/1y/IHCg/Ojo5Kb3HMMuXcg2AiEAlDN3MbMeSQ7KkKixm7sHudHjhqBY7zmYAViGF56Ku7k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOu4xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmozGRAAo2odumzNjd0MJ4A22XJu1C7QnmEM7q6sIezZ4W0dHFwMusfj\r\nLH7RRKXjCYwjuAK7eMbD0Fr/9wMYsVFOeH9zKytxiOlGqkzndOdb+nfHlAWa\r\nfdSk1k9nMYbzebcyKt6S6R/vAxs9VRMSAFOgMIBdRTyWaIkABl/RDljDymGs\r\n6yXY+w0HAYNPUM/hWlipT75RrKxhszsUptA9HF3641rDUOxggvhTkLL6julz\r\nBpwK7hsaJB+ZMQXZOTYgLHrrvRYMUFT9By0W2zJD0oZr6WpHFiMsAKmQ7VNF\r\n9ja37QsA80yMvmSEbsqfwso8FMC3W5blpttZKENYBCYVqLT5dykMFlDUVY+7\r\nCFUmQgLkGln02N/jZenuoZs9S9vigdQIURNicoFUcVCYCXOxL4thoq9lwufp\r\nSR6EdC3AfFwxmMnZUwA4s4bDXcPckyaw1TIedVt0GYAPHWtE+hDhVUkswreG\r\n3vyIS+MDC+9JdU8LgBq1Zkz/VtMlr/Ksk2MYzPi+RZQaNnS3lnp7SRI+5Ci0\r\nWn8k7+UR9fqr/M1o2N7XQSaj4CA/2Bd9EuG4a1Me900CEnsFX1oIcAdoaPmz\r\n6X9DHVTd4UDc3miuwSML5rMhXLGl4N/Hv+pvudpAtfWj62/+oM7/cOd8PrKu\r\nNplRgZJ/1lPKmDKJOQhQvmJohFh9LLxZmLo=\r\n=fHiZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c8a43cac51681826fed671a1571fb1424a35c5da","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-c8a43c-l13dzexv_1648029233392_0.706707347954884","host":"s3://npm-registry-packages"}},"2.3.0-feature-a60e75-l13f2kda":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-a60e75-l13f2kda","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-a60e75-l13f2kda","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9e8f4cd616bc3c10777c9080ff42b273bec26b3a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-a60e75-l13f2kda.tgz","fileCount":970,"integrity":"sha512-7hbRkbcQjNyFEuh+hT5vLjOKsm9X2aQHxT1smbI4n+LRlFC1+AZSAaxNZj4W4WhLVlFAvAXCtEbgcYb+nBGk0Q==","signatures":[{"sig":"MEUCIQCC8eKuVAMyQ0cSex+mmfyvYn1PGVihEnh2/Cpt+O55/AIgOoRdE/GI7S65aEhMWHMpLdPmePYNVEXMG6VVqPOq6j0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663368,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOvVjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3Kg//R/4NoT1Cxb0uqhMwsm6MEh9zc7vLJHEXEqDpjnqSXHmdDahI\r\nQjeVKWIspeaPddS5n+3Yo16VjcsAAYA18LoGK2kds0uIi9xsYqLUL7M4o4uI\r\ng5Mn8qBRRfTahm5MXjf9Zjvfje1BgMlDBg2H3bnVLleaKa7HZTfyfB8W1SO7\r\n3umNr11quyUwH82M46X0OWouFELGrAQGN0pb5vliWjmrv3YFFeaEt2dDVKJr\r\nHniwQ4ibh1RDM/U19GgAtsHyuoUlY95zxzQszM702Diph3Z6YY4wCZjiGHAz\r\nFL0nls3drNCkj3P7R4GAZ1lIIA8ImFhdxRmVHQMgouBWmND3STt5VvmrXBTe\r\nk6kLTSoIqjMs6gkxMQoeo3QPxMsu6eACoX+97G227kCQv4bg5lpBRvR52VnX\r\nk6HbPNu0Qnoo1fkCwtpH7b40nuFUUE/YOoeRefrAP/0i8vZIrQ+RWq/rkbjR\r\n0aY3xN40m0aBrFDTOaqAaAT6pKTEdjFtSKzv3L4OU0OJDJjFVnZDjRo0G6s5\r\nDMPylsbnc1r+8hUwfN0vWG0ezXGvaYUMTGzMEQV1xeDcG7SmuehyxPwEmkmw\r\nnSN5pbh323YcS6dmv6otY9Sj8e/zIvTFodB4Ob1hjebqrZkTp8dAfzO2AN3/\r\nGIFJ2AmX7I9q2jpkCh3+PugDY0GE03oh4A0=\r\n=dbVc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a60e75b30c03ff4ce9bbdd8e6c06a06617894870","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-a60e75-l13f2kda_1648031075134_0.8812161201721649","host":"s3://npm-registry-packages"}},"2.3.0-feature-fcab0a-l13ffv1i":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-fcab0a-l13ffv1i","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-fcab0a-l13ffv1i","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"24e9b0e9e351a0f2fdd193e0485178bdb645caa5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-fcab0a-l13ffv1i.tgz","fileCount":970,"integrity":"sha512-3bI/wRBNe8G2l5Z01zzp9fYX6DqphF50/4zSZxbqJ60PeTcV6dY2/9oLnEMrZMLHXQeScra58ipW2TVuukmXPw==","signatures":[{"sig":"MEUCIFTb48LollDbIVEO5N/ZiCWpEaA6bBaegkLJ8GOavSdlAiEAjbMPT+sw3/LDSEZSlUYKPoV44HZonTDa/UIt3zyTKVM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOve5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrL4w//aEezpgOOElUshY1gmTjL2CMPB1Bl6S9aHTUfrqlkOYV4spiX\r\nVHfX5fQ7UZ4rVIMz5SBeClRtahmdnYvvXNlt+ljvKeUDFUlEwSGDSu7sVJFg\r\nYdI5DTfV0zWq9dhLFQmabvpc3PM/nnRdhrwaT+Zpmc6YfIt8E7jYQJ3RnDf0\r\nZDmjWvTJcQhJ1jA9SY8yycnaLy2SDq160NwylnsJu/VYrjnTpwJaMRHxvaUY\r\nQPv1WU608UqxAvkNCqZ1hYsC6PW3s96lJG6HCW3VqVNfgy5IL6NP8DNcJN9v\r\nfuU4yOgx2I9y97kxdfkQ3NMqUZBmxF32kOEiOXATVOISpZnX8fU7izNh+P9+\r\nFxUQ8dDjQ9B9YFDcblo3gQMiu2mEhsuNgBcaNL5qMzqy/F9p7dYmF1nX7C2C\r\nZwX3xxTlVWS7dmvMDubab1j2qPxa3fml/KzzlM6qaYRCoocXSOdac15FaPZ4\r\na44uYbKo1kJBUo6npCajVDPVs5dZQigKto/zmixXlK1DKCRhur3EKwQmw/Jy\r\nZeVEC16+GuInJFsNOrbs3VCb987LBccRmDN7+Kya62/oohiQpRn7CDX8RQEV\r\n+lmBaQoN7OGnui5fG5bWdJIY5cP6fEaOrI6hlK4OihI1h9uiZRH27WJrJQau\r\nlk7pYF3qUc4M9cdmlgoJtiiUnQoSKqqfN/Y=\r\n=mWXK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fcab0aeac63479b70f8b8b42c9b8a723dad6871e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-fcab0a-l13ffv1i_1648031672799_0.4122617049130122","host":"s3://npm-registry-packages"}},"2.3.0-feature-36120b-l13k4b7l":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-36120b-l13k4b7l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-36120b-l13k4b7l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bd9827c83baea57219706d579f8237933f534212","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-36120b-l13k4b7l.tgz","fileCount":970,"integrity":"sha512-I9ekN12B/Q/RZykSGhEGqrMUTvrw/rHLYIMtDRVn9wEmFYT/N7YQXpl7wqS00H4lemTPlmCDb/cbygBHmGmuiQ==","signatures":[{"sig":"MEUCIDyyNG1dLgaUAIzB36aMZeLRezlZBDEjRH1r3ouh/XQRAiEAqllGHTlfGrxynPDaadxuIyn50x3xHMQ3otewoUEvYr0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOxaFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZlQ//SHMfVqLOtIEhajUuQLFPP/Kg4qiakD5F2n8DshmmNNPk7tGd\r\nar3dyyO8n18oNAbw0Xi2Hi3ZvI7S3h+grE7gZNm68qh7dgPEfhQPUGdmI7wz\r\naNtHgsBTZkyhnUjBf/H6K8FkJJY5Rg/dL/+4oZ4DYULnAGAaXmhlrQ4VF9h5\r\nkVFg/jzThizef3eGOCYQxUzGFCjcLpFFQjkIjUGuyOZIuQ8hECqTKzCimAFB\r\n0HH1M6QoiRgpy80cbUc6zTCwrUP4MVUpdksnttKeiBDgqvpMf4PQUyLDeslP\r\nJCmnR/hFNzYXaSFUEX2JeEm97AVyl0dtnz9e/j//8dYwtSAK+8aaQu1BfAIC\r\n2ReVhyW4nh0HSRrt3RSrDecj4BsJYhoTyoKcOW6N8BTveFtWh8az+v9nfkjI\r\nJCZUW1riG9qefDoajbTCs3hb27YMo4hOxrJ9Bz/F3KR9SMeQLceHfoLFShdC\r\nj3YGxcdZUjNZOExinIjythqeRvlZf1lYXo+CDb/75pT0ElNNrI7yMAp4v/Uz\r\nCsKLutBZGmZ6BtoRX352izrD35E3fF4B9lZlOZQwgbNlvNZeJzzlkK8iutFI\r\n0soWJ0xfHCDqzvJ3hOwHPLNA0E+EWH7fbTbr7H45binWIIWGAC43Vio6CEQo\r\noHXMFg0qSm3CEOFHi3rTTCPK2X74nO9ghsk=\r\n=Vk0a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"36120b91132a298d7bd9e05933217700b97a2600","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-36120b-l13k4b7l_1648039557539_0.7233969021124227","host":"s3://npm-registry-packages"}},"2.3.0-feature-da6bc6-l13l0pec":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-da6bc6-l13l0pec","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-da6bc6-l13l0pec","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0c20e4db10ddbc10443f8ce5ced8e83d92a20dc8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-da6bc6-l13l0pec.tgz","fileCount":970,"integrity":"sha512-qw676sOdW2FV9dbUDYBWyUOC0ic8G87zYF4doStR7GeBqyRB87SBlEL+mwuih24F8+67Cp4tIeJlZqxZh72e7g==","signatures":[{"sig":"MEUCIQCbyMO2JRrp3PZ4OEbGR5Ahp7fCn3swwDW/qBfF9/doMQIgX5NgFpjUHoQWOBsjIA6dVdEBZArAG9pi02gKu162TAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOxxoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmdQ//Xh7Wkvwe4zbWz2AUSFEnWLPCq0ChDxxKErLo/fq9ylv9bGTO\r\nkpScG79YRBkkdqKd+E3xNlPz7ceLeBzgDUUZwMGI7cXioSbysFYPlr3+PrbW\r\ni9DkHmZAn1Pu7JVEuTrdKYzf9ViNcs63k9FsmpK+dFEUD+zSScoFDr1SuyTb\r\nasTmEQJ2OVvSVLAlHKQcixdsLWve1tyGjfZ55oCBt3D/EgGjbd/gCYfwaxmc\r\naamY0b/6iNsJBmPKDtWSCWseVFbRbU0KQaUnFxcsaVToUnelqk0YxV6fztsl\r\n46OJA9UMYHBf/Nt+oyGSFUyqOH5+NsgubukodyhJAPn0YZDFlR75HChPKIqV\r\nEL0wWnoiEvCsdOIrvzj6pVX5KkXNazWzuQ7huhMR4pWHZOiaCNgrYha0+wEx\r\n3OcGJH7w0eDs3pzwxBfSDLptYJy7sNvtqUkXW70Vctnvcc/GNsUWSM3P1duD\r\nFFSLS19a6s6GcPY2xRh5abzZ16SFykV9AMRrxzAXys3VEVKSXJ3GoYI+TeJG\r\nPZIkCBnQAsqXcgab/RMd+rOkDuACiJ9cNNR59Zl01ZlCrYQ2Au1AySuI7WwY\r\nqSHuvgz+Z8bEqhZ3XYIt8PlS5EXP3koEvumQ49m4js/Xum/aDECMgkd+bw17\r\ntCvtRWxe9VXy3nAytV33Mj8DXTbAS7EZ/2U=\r\n=d78i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"da6bc615a5661112d42eb66c497ddc60a2ec70de","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-da6bc6-l13l0pec_1648041064058_0.17983564960446263","host":"s3://npm-registry-packages"}},"2.3.0-feature-9225e8-l13nplx4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-9225e8-l13nplx4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-9225e8-l13nplx4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9fb23604eb26c56e932cf2a4d7c84da51b623982","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-9225e8-l13nplx4.tgz","fileCount":970,"integrity":"sha512-OhJTcALvLnaj4uNrCtO45NOflUlAbRPYYtyL5emy4FqhoRlaylU1NQijrcL8+jOeKKbKti//PwWtnyMhGSLHlA==","signatures":[{"sig":"MEUCIGU4qryayzy05wTWHmivnVsn67MDqwnRMr0KumjZ5Jc3AiEAmLSKX4PN1tsJaOhXgY888Rg0M2FJIuaG/+OYEHtRapw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOy4FACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGUw//QY2NKrFJyaKwZEIV8wW3nvonLJUBl//I7qZYInyT9EWll3cs\r\nJzbPtWB96GDhJyIWfgWKZNoa0T2cHeZ1GcpGgFqFu2r1R2FU7ov2M7x+bt9b\r\na8xETh4U83XPDeF5pYdnMfFUluuanay+hLG7IcWetwuKRzfUSHLaVDt9XjKv\r\nWq0QlZkq6uc3InxhM9bMLQU/jby9jeukU4ncH34RrxUfYo6uj6ChRKGR1a5q\r\ng5uNjjqGYGm7u4AFKWlEngSR5ibiZO0o6qZ4PWhPqQuh4OXC3khT0sL7FWlu\r\n9f3GCRNVI0HCNzjSce02eaEE2+HqUiz3XmHNZlz4cRELKF8PbJv1B3hz2bjP\r\nM3qbctyS7eNv/uBJx92TYZqVQ6iS62MtVanjnW4oIdGmGp53Q5WL8PEbJzma\r\n8SgX8SgomiRSvUeotOFUh3VAySKfuzWTmaPxk6RCxdqhp4rwh1g+VapCK7xl\r\n9M8u84Ifg9t3ReiqUsPXjqvHg87eBHOrZveCR0l9Mq5EVCvY4JA26rN8vVxS\r\nswdNhB4ew1e9n+bUBn1BODNq8QAeK6woW9heS0hbYRsWmVXxJAb3Uo10hyUW\r\nvA7iDT2NT+Jr1rIOxWxDXLfglNqVcvTFbt5w8fPrVo+H7pHk9EAD8P/yanz1\r\n1DW0gh6eFg9pwpvMiS4B87h0UjdgdTGYdrA=\r\n=gh39\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9225e8d7baf5806bf99ac0d7e79ae4b3da873053","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-9225e8-l13nplx4_1648045572908_0.06486806690840918","host":"s3://npm-registry-packages"}},"2.3.0-feature-be312d-l13pq0nk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-be312d-l13pq0nk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-be312d-l13pq0nk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a9fcccfecf355d7d8f7087f2b3b41a51b186c303","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-be312d-l13pq0nk.tgz","fileCount":970,"integrity":"sha512-kl8/2rI8HyxU/k8VGpQoldy2UBsli+2mcsexXZ3AomQBGybnAsQH24j4keJ4aEUrKBVFPZ+7AThSlF4nsWLJPw==","signatures":[{"sig":"MEUCIQCZN0s3PXW24s6xt2NXhA2Wx/OkkW8nBtMSwVzHn1dFbwIgfedqACuFYOPjEHwgfQhLv0vdDTzaVssjRgzS3JwhHkc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOzs5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqQw/9E7Kq7yEJzpX2SEj1KZmBpypGoM9dEwuaDcIxYiyTEdYe+Bpb\r\nIBNbSXF3zsLxjbzadMyFBwGJFLa7jvX92CwyVMcpZVjmorON6AS2Tk2a6Y9L\r\nMiEaHQeieKn+uxBEgMsMcBCw5lw9vV2Bd4GdliLe9fns8pEoVmDn8+1VW2T/\r\nGtNf/A9LbnbOxMsie03Gk6IJ1t7xhZafGsQG6f/C7B8IbSTtNBrIE/mMvDIy\r\nRK5yTzdbZIsop2VKzsryfhCbxCwd/vHcpUQ7NQxrJeX2AHvnZe/rhA+bXuhF\r\ngDML6IgtUduQjOar76xuuMFrkuOZXAw5fLkE6uNIoBEXCCClxEvUw4+PsIkG\r\nsou/QTpcimPKADhVEIwu0G5uVhzNct3uMsaTBwNaJyFznmMCujZJdzSFgc50\r\n6Bqx3zrza/TMx3ghlTM+OnUar+RAFSK0GFDSxvcCHc3udh54QiYOCP/DtOfF\r\nqAWXKM4XkKQ4ayLZcSElIH6r0GwJfT9JTQOjSXquO5jnjWo8poTvaSPplglk\r\n2G2wxfWqVXIHzgU/dKmQzhnuB4hjHGrAHQ7OBfnLazeqwu1nS91p/UvorFGx\r\ngSlqJOjs8/fg7xgQpZZGD2jzgsQp6LmVjuQX7sdIRl/hzL8ENa+O7FI1BNa3\r\nbnUP855HZMW+Yewj/mocsLF20oZ6De0QDME=\r\n=88U8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"be312d622dcaa8dbb0b1b33540f5833c664ebf1c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-be312d-l13pq0nk_1648048952988_0.8011198477909935","host":"s3://npm-registry-packages"}},"2.3.0-feature-8cff56-l13smi3i":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-8cff56-l13smi3i","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-8cff56-l13smi3i","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d3ec0110370623f07bd824feb9f8ca1a91c3b93a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-8cff56-l13smi3i.tgz","fileCount":970,"integrity":"sha512-f6oWucYmc3C++a5nwPgkN9tYvinpKRkkfJGUpfQDYqBKjClp+PK1gO+R5WJ7XdMZxu/2PoqbxvXQAMYrYf0iMg==","signatures":[{"sig":"MEYCIQCc9I0dKWJl45D9VfLvdEB4GmIFKZ4ZFSTlXSKcoY1tGwIhANoUNk/Thl7POwTXPImhYMbzS2f4ZIUaki7S84MdoaEK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiO046ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqbaQ//bSIXVncLTiexvXlSWWtXn/BYTGsnI3nLv9A7lkH1lmbKxZFX\r\n20ioP9geBwL3w6FKrwSdfw0gqsiK74c9lHxmAoVNYqMLVAkdETvljkMzwI6Y\r\nr9kA5k6wZsQqaLEGIxe3VOMhxOQSSJVgcpvTJpctH/8DMRNq7wCw+j4J1lTz\r\nhW22LGMAWCSaJIEjPFJMojRArbTwUY8PVMSgytQXaTiMSojH6cBQGrwTrTQ7\r\nv9h0qlqfiVWC3WEjMEz/llgVSp867I+rPAtUild9VdyFlk+ZpHAE3E1saUJo\r\na9MXPoSZ293IFV141gDVTnCz/0YE7g1xl/CwBsM1W1EkL+kh+OHmkbfswICf\r\nEm/W8bW1MC2ugMoNPIB1YUyEgQngO+ad1n+0qqJy8/MUZSUM3lUEINDMmJXw\r\nXtN1Cb3jWO0GD0PpQJ3ru8zbWG2sjR2ikvQreGKaTwxCYFy6kntFH+BfCuCE\r\nBDGr+i3uOFv3inxAJZE7M5x6qkeq7V8R/l24yNHCdHPd3wZcyD+/KHyXOJzZ\r\ng9CvHR5pcfHck7d0+N3oVCAmHXMtHQdVOkNnoEjXJY4ITfJTRAHhVbaZutjp\r\nsFm2HYpObEw6q10MNekyK6P1yp160NQ0zi+5rB1e2B2cKKQ6NiLlt0wpSC4K\r\nSyWCONxzwCMvXmAWQZUOvQr5ehMkrrQdaq4=\r\n=PrjA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8cff5649794e53bf1af1caab9f595f25dcc3ea98","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-8cff56-l13smi3i_1648053818595_0.5795107802975212","host":"s3://npm-registry-packages"}},"2.3.0-feature-df6d5c-l13uz8es":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-df6d5c-l13uz8es","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-df6d5c-l13uz8es","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"642183189a0730b66bbdb7fe63e9ace57bb854d9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-df6d5c-l13uz8es.tgz","fileCount":970,"integrity":"sha512-ff9ZCvafctsNeWx6Ha7cWA4ytGFcUbwBSwXsr6aS589RbIErGOKC5RE8QPf8PWk2W3/qKMYZ4EDpX96/EA1vMw==","signatures":[{"sig":"MEUCIQCO3OEIB9dw7qJoOhetdPGx9tX9LkQiMu6Hu1LKOZHoSwIgYUDpPZd5rcJ7+pufzDrM6iB16RemY0KiJ0YwH6HmDRA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiO13TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpk1w//a33aqEW7GWhR9c/x3wrdLw8HiM+VVpyTS/IZ4UTMTP5Dq8zm\r\nsT8uCcYIwcXNntwD5JtbGDxhebc0EmALsCAicgB1H49ndO+7sFfRAhcotTxS\r\nKKH3hrxJWDQRz92mdhRubocpGrTRDw59nHEI9iFP4/fvhl532DXzEt3Vf5Ba\r\n8BNutolo2ZoRmAZyciYh9C4uKnwjmyJYzcp+raYikm/UKx8u7Zxv1XUxLT3b\r\nHOhJACGiil/93GIE7bngN9GClHh6W9vUcSBLox2l5QFEjHtPzZUrelMojJ5k\r\n1QN3Ysr7GW1KA7tqtBcsoMeFrhl7e9HMCT9DFi7z3puoOVvdTlGez5vk0ASp\r\nkkbi8fYR+hCh1TDKdPx0l23fgpSgg4OV1V5kZa0VgQlblibIf0/SpVtWtBea\r\ncKki3HdRjqnrtO6xV3RUeECvK4ghaOywwiKyU15OVJSfqzCJxrpiqB9fC978\r\n+D4VzyCW9Teh2335kkr3VFL2OWhYiEmGyfRa2TVElPmV5PefWI+Y8YqVRFZb\r\nfzHEgU7AbnmQZTmzjnKbkWPCvg7slBg5Xf3U3BwEs8slXnvGZyCA3mLQND1l\r\nNtZlW/1WJopFnwklOF+NMatMZqrV3z+LxvUjc5f//1Gvs6w9nF61lIgF910e\r\nb+4KSTJxbVIzYMpcB0ZN22aH7+6IrKq65T4=\r\n=P0nC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"df6d5c2c0097d64077846974c04040ee4d7616cd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-df6d5c-l13uz8es_1648057811145_0.02089284267790914","host":"s3://npm-registry-packages"}},"2.3.0-hotfix-ce0755-l150pz9d":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-hotfix-ce0755-l150pz9d","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-hotfix-ce0755-l150pz9d","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b8cf39da6f8eb23775ec8a741adbff81b0fd25ea","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-hotfix-ce0755-l150pz9d.tgz","fileCount":970,"integrity":"sha512-IgwonqkHseuTbWPTYmDGHg5dkRN79MyLQxUbMvVr7RckPOdMt6fF6QOjLTswSuc8FYNH1mSo3hWPla9wIpB4dA==","signatures":[{"sig":"MEYCIQCtMRXuv3WqPvtW/+eEpx4On6jLWc5m5Vo0Y8q66aQ/WwIhALYVZrDlY8MepBEbzrSzbr7ETGUSUqB6QJB1/X906833","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1654847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPG+hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqCg/+PXulCQqMfDHr6iuw92jvLAYisha4OwER2S8axVtLqYnQu6yP\r\nlCRDVQC33tWjl2bzK027esb00wuItjZQyznNk0q5Wi+tRocLccApexfATnt9\r\nuRdI9lETb6MKt7MJ2RNLxmnJ70WORokEDejg2QiLtCcFYmzeR9GUXgQ1hTlT\r\niHvM4CwbGCXhV4rRKdM0idw4ysZTEQRz++P5QCOrzyQc7IHH0YsCEPNk3mwV\r\nAkxMWk0VqaIhdb+V6bIsF3Et+Qb/sqG9hoVpoS7omwLk/Lk4aKLumYR9r1nl\r\nzSJEhxscgpVAHFlvsYnMFFszn6uymTUzGd9/ctjr3GzSi1g7K4iIJSAzXluz\r\ndhNsYrqm3bAHwYvSXhLfJm1KRidQxtCrUFv5qanDh/WydyxobG571xKn+5bG\r\nuc/lIJVPQkRbd8D4T+feGaGNoBi1qzy6xsaRcULuyXwbXzDGaOMtN2dArc7Y\r\nbQf2p5EH/44qGQRal8ApVekxAXFx5bAdfwNTuqLzqcir/oFJQLNII+zMW/IV\r\nvJBIDeN18zITRpPdul1sSBsJBbDfVs7K+0luoJdH3HdJ915I/mS2nFn+ul/h\r\nLK5MKDSegs/HYylVWsZVHOlqi2DStzAcpStBuWUFrfZUec/kgSh0E7D+7urP\r\nQFcFEaD4qca2QP90t7/Xkv37wvoCEN4Rm7Y=\r\n=nHUG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ce0755356ecc350ac3190350bee5c04144337242","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-hotfix-ce0755-l150pz9d_1648127905790_0.1244346844025499","host":"s3://npm-registry-packages"}},"2.3.0-hotfix-435c5b-l150tr76":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-hotfix-435c5b-l150tr76","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-hotfix-435c5b-l150tr76","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fdecda5d8c852352f8f9e504f19263c61245b3a6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-hotfix-435c5b-l150tr76.tgz","fileCount":970,"integrity":"sha512-OiJxG9RXSrv+LbmZqdfTfkl8jyJxc0C52UmwMekKrFc8W/6Yeo/aN0Qji9xgdBt2E9cdObA2iukEMurRrwdcXw==","signatures":[{"sig":"MEQCIBmpBzjz893Imgrx+77Xxs4ia50Ms02l0IH0O3wZ1JhKAiA330MZVBz1Ow+BOQ8xUAXGoWBSt29Qhz+Cqw/F7QgUVg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1655157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPHA7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCCRAAo/rXbRc4vTsTl+5wrzVCPFEscJTYW7g0tcPuC2KMtav0y6pG\r\nrAhCUe4sBLDSyJRKPG9x+Jae2RIFZOawyLJI5867k45Vh6bEVsR6C7bx482C\r\nE20TtK2pNAGL02aff+jvKQrpcizaGiAJA+JUozIZTc6Yq+IABnRsl6vgPQ0p\r\nMePlZjzz2ZHhM36oAYSucnUXWPBzivuqDzclJZgNw83/iNGaKkKqQtnRGx5I\r\nCcTVh8JcTpdbsl+fWmXOBJsfQmY83wPWYm4oWmNHxh0xzHbphbW1fqAwXncg\r\nnPQoRBTLtGevJxAMJ3EEwNo2y07b3pJw+gV7Cn+YLQf9PY9QFZ10rYt8qwMg\r\nZh4zbBfALxANK9cUKJM+C4ybS3MMxfoiLMOgxWXNdljyQXpgO15PqXa4WAnQ\r\nP8Fx3oUCWVIAcIBbuAN7PPmPsXiaxdwUFzBpzbKfNH8qnHny5Yr44Dfy1u0p\r\nPEgnRRME41oALAMoFed1hCF+3N9JcxEhEs143wTK6ws72yYwtohrE/csxsEM\r\nSkTlcvn4LmyIfZoLDpWBY9WckV+5YT4pVrD2qDK+OA8jvqklGuwyTCL68Kku\r\n4eTadwyVAxcxQogtWts422KYXj8vZX35W3OuafHfQZ6d8PZcWfUSTcSsXoOi\r\nIHSIc1yH92jvum5OCYRxzEERRZoNIwKlPoc=\r\n=yLMK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"435c5b7059a98ece04c92dd21ee1cafab33f4bd2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-hotfix-435c5b-l150tr76_1648128059179_0.11165350858901335","host":"s3://npm-registry-packages"}},"2.3.1-hotfix-4f3677-l1511wuu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.1-hotfix-4f3677-l1511wuu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.1-hotfix-4f3677-l1511wuu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a4ee6a41e85a22d3d1196d203bdfde0e3313b58a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.1-hotfix-4f3677-l1511wuu.tgz","fileCount":970,"integrity":"sha512-d5elRFuzprxu9vR5dcXClajcwCgj0/t1Hs6Z65XTsjPZCrF7p+KnFr/fsXjXHI4iSPm2sdmAqnvgoCbEp8U4Yw==","signatures":[{"sig":"MEYCIQDkKZnEw2NvPTlHOV169xQIbzLNzsPBmFLysGMG3SIgzQIhAMy301xQnoiT4YCQuKp6eEJsQSV75WiD9UhvePx5tfaV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPHHIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Xw/+OL2c+Y3bY3M3OHbfwMyDFDVMmUx8AUVjkQR9L7qW/sVCEzK5\r\nyeq0erniu7Qqa8OyPBsFIFfj9dT78wiKrOZcG/fpJkizWrkaLV2C6GvrG/dR\r\n0mf0/DScZpfh0y3w3u4AhKnzNGNof7Il0G+0+TTcnhRvFsRjozDbA1nKVBsy\r\nrfFOAIeTjcrtnFdsXWM6u6HZRY+GC5FhTP79gdhkcHeEXOdAEezBw7Tu1ktg\r\nWdBvMAkRniC2+/6HSQZJ9TTR569HU/6Lesp0WArkn1C2jFegDTDpPPX/FYRs\r\nkNJKFrprz/obuJca2thptr40E+42RI8ZDIkq8wJcNetq+kw0IhzApr3znWRs\r\nSlgmYjH7kUndFZHdvlNbEp32F+blz62mHlOMzURzTKXR+1uMECuMUvnuIoqy\r\n4n6ZAVmNtpuCtptpdQ7dGiEykHKEBQJrXKyXeZeNrn5c9sgvm5S1iPfIDjOT\r\ntHacaJ1Gky54LZHaFLqwDHYD3ZFK7GHuctwI/cyDQ8ItcV3R08Wn8TVx+VzH\r\nRvJJiE2l2+weFQHkyjKp9S/q2egGrL/D1VXhi8XbQfuqRl9FkDagh8hybxpp\r\nzwar6ukM9Zy4MAvDQdF0PaRp0MVREPjjDczFinBvXPoEC4iK+6o4rP9yhXoA\r\nBglrSLjNDXiAguZE+67tGvfHf1wtE+206vQ=\r\n=L+kz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4f367730dc49f4855289b9cb540a06eae51744f2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.1-hotfix-4f3677-l1511wuu_1648128456663_0.1527381314856593","host":"s3://npm-registry-packages"}},"2.3.1-hotfix-7136fd-l15276b8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.1-hotfix-7136fd-l15276b8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.1-hotfix-7136fd-l15276b8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"123f336ea19a01b751d21c323e6b409860cc1a46","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.1-hotfix-7136fd-l15276b8.tgz","fileCount":970,"integrity":"sha512-I5jwjZc0MKuNAv77kHGY7qK2slFVa0s8UTwg/1dEDhO2AEsO7SE53p4HDKvm6rz/yjsRpoEtz7Hd3VqhNYWS/w==","signatures":[{"sig":"MEYCIQCPNLrs2U6/hCUZYf2BeBwuxJjRQK6m/dwOgD72ntJk/QIhAKzUjYZ4VqjOpeQCiBnhe7iKAlXvOHNT/Z8yDFt9R1+Y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1663477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPHlUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4XQ//cQp6qI9TTS++qed5BY1TtCJ9yki2ZcGTeZmH0g2iquF9bDYM\r\nfGpCZ0fmBLmGnLhlpIqpvFxAW+9cJjDD4nsnTCS61FTlcNsmlgxbapS2uqxi\r\n9VNfry5q4j8skIAxEt0dZ6X76jrXinZV6YW0Cmf+SWpbqqy5bOusQ6SdNI9b\r\nsy0TpTVqlawXs41taEs6jqk780ycbz95NS6JxEIDIEYt4egU5F1I7D4NFWcY\r\ntLI5wz9Gm9tBJZciphxh/2QcspbDbEa5dSLT9ySe2If7X3N+ju5IatYkN/3o\r\nMrb/MpUFwrrxQmGkonPyvm+GfEqV3FVWt4cCFAtAgTe9Q7u4LSGbnbsFZP67\r\nu6gbgvHvMBbZHvsKWE6LG7BBqkIHb8W6O0D9mAcCjeMDH915+b2dffDbykx7\r\ns+V5BoeH4i6OnTR4WXDXMkbiLq1CnzN0LesVGwwUUgjKNeYF6qNFGkAkGW+k\r\no20nlneALHA0qlJcJfo/XBeFRCKDT21W00NnIuzK8DH6GVjjX6OAvQzuQAvZ\r\nH+s7VssAwbNarIhBhPbMstjDgLID3QJ6J1/vNK8jF4I/gQU0RdRX/BShw0Ik\r\nLSjs+DFjfPfy0DrJFphsb+ynqh4AubYJALoq/iMvQkm4BNkYUYqtMg6W5baU\r\nOCnQKsm2x+Io8Y16m4AkL77fo9/Kr/rdrZE=\r\n=uvYY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7136fd1c56cd0f61774dadf2a87badca3f644207","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.1-hotfix-7136fd-l15276b8_1648130388052_0.7247751439538446","host":"s3://npm-registry-packages"}},"2.3.1-hotfix-f16747-l152lzdo":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.1-hotfix-f16747-l152lzdo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.1-hotfix-f16747-l152lzdo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"95f0e985ba39cd1cae89d02a7ffdd0ac62d0edd1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.1-hotfix-f16747-l152lzdo.tgz","fileCount":970,"integrity":"sha512-QX5pWCcPTSGkHdXYd91/Bgs/UGBRFhze2YlBQ2k6yIhrxOTu2XYnXNLDjfUMYL47wMtP4dUNsdx9Li7B6fPUJQ==","signatures":[{"sig":"MEUCIQD9OM63YMvhEWeNRV/ZqJQodWRFqETQFKmRP4/lCx9OoAIgZwh2qvjCOv4Ww4bRi3IV0WW00IMNGGHlQFlyy4av2jg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPHvyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrb2Q//VI2U5GZUsjJfOVr7LXCPaPKg6JGzFr/dWa4dFYIu29vwG7Cn\r\nypMR42gP7U0O8WY0fDKugc7G0FmJqkU3MJ7zB8N5CGK3nQcg3hWwa0ihb6JZ\r\nrLuIKXOzouHAZ53W9kWANsr9JxwbYEGBYciktgF3f3CtM/gkvvraMdR9ydp5\r\ncU4JSmicQg8uH47FZteYDAm6a2Hix848yG/y8TUJQGMY2/CJDfUPC8QHYI6j\r\nJaq6vcwgpBDrGrBepCB6YXObxVElbyv0QnBO6ZfSJG4PaZVv4VHcIggLXK3A\r\nQtdOGcB5ZTzPP2TBg4nQPV1DGqeFviA86ndwRw+FQ0lJRKeViYwcD45OAdaY\r\nTCIamP9DbiRDZ4xgj1dZp/rXtzc/H2Y85QgaU2LvMztrYAcEl4PvpYT8A31y\r\n8V/bJzC/zlJCXZvkVGsm9TUMtG6tLLlAzmOxAZR7be33jNbMFrhI1HM7AOKP\r\nH+aedblGH2yY5EDEjEZEtUtkzqnqE/2+sn6Btl9qQhCLOpA+dJ0e9DgcqBJI\r\nUvUSwG40X6uehbnmuqBm45fTqJvRWb/A+gUUW8po5FQB9lS+uSGWcRD0IuiV\r\nS5W0fpdKWIzKWn66I9FFqI4voklgIW2NlP67iiBHBIHB0uRA3AFrytzuRdqr\r\nnsrAjEQo16QZLoP8rtMhD4YJRK2D8zMW1GI=\r\n=VmFT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f16747853349beab0d6caa47f9e81d189f9976a2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.1-hotfix-f16747-l152lzdo_1648131058353_0.8288018434701019","host":"s3://npm-registry-packages"}},"2.3.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c8b17509ed5d78c7c70f205aa1aefeeb8b000e4b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.1.tgz","fileCount":970,"integrity":"sha512-Z3WxK8S1pJJM8i+pTp7GwfZU4avl7YXlY//zzLf9qHEJQC4tXBu6nRk1lcBbtE7eZ6STVwYL96msyFImvkrCvw==","signatures":[{"sig":"MEUCIA0Pv9SE4cyqwWA1CNY/u0MZ1LAyR2zfKNrng2n7qm9lAiEA1Y0uuOb90dpDp1TszoQzltDGR+otc4GBX62X1vr3mNk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPIOqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrt+w/+LwadIdpEfZeBEdGg2AUQwDgiyuy1UgfIe0qg2H1cylde3+lH\r\nSm4LS8Te90Rnd9LmheGGT4kXQ1HzRDRKIVa6v8UqYh6iUxdHSptvOszWXvjW\r\nmH7QZmwDn69Szbg35Cai5wTfNFTA2wN64TF/dQCAIWVE+QnOTda0XAbA0Ii8\r\nz4P71A0zj9OQccpm8YIDyRJTO1PllIyDswfHHnyLI/2wgzmX9KGA/e+a4Y0u\r\nyA+b7xGBm0yXjWO5AqG6ooFb1OGA+3ag3wyCn+wttRjN0BhlQNEYGZ7WcRfr\r\np5KkYRCASmuLztksjFsj0uULJz09tUXiB5OzalZ5BkszITB3i57Npnn/Otr/\r\n3yCoMSbjcVKbp6wAgqX0EqSMP7snNB/cTZPUNjpxySbOGjIfwiP8fykJUoBc\r\nLcJVa4haxo1IwCmrBKcm/+b4EeX8CoSeBPBPlIl/sp5+l0WrmjzARzixb2Md\r\nhChBggvZUcAYS/WAKziVf3v+j5x1WR5xgDoXm1gGxccJlHqYaaVRRL6fY5P9\r\n2OIXGbRMKXmg7DW3fzwXyElBoV0MkQl/ZUwMsv21rd1w4tdruIfBuhqTW7tM\r\n8YysyGWXy9lqnuc7rWKuO8IPDQTvt8Dfiee6N5ucWzR3v+eUBQDCLTf903Ta\r\nfM+E+XmSquIvrXJtMFems1weQ211tV51Dfs=\r\n=YtKv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"34e894461acdc985d96c4894d6732920504f24d7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.1_1648133034333_0.2898329499269232","host":"s3://npm-registry-packages"}},"2.3.1-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.1-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.1-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"95a45a6652f3ae9025780848d5ec4b3f43b667a4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.1-beta.1.tgz","fileCount":970,"integrity":"sha512-ONdrcE05hjjxd/V1FrcmMNs0yAp2cnNcDAw9xHd9qOEtzQ4FYwXS+/RW1ZP1UHIbAjU5NUP7uBJ9ynlke+ab1Q==","signatures":[{"sig":"MEQCIFxEGgz3x3ENFHJYCgyoZx4cC8kKwy4jLTwc2KvG0ibEAiBegDYyNz6oqfGpnCFha0dcCJSA7lKfzTgrO1kltBj/+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664017,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPIOwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomCg/+MzvGTLo6dRGOz/Pd/We4P2PlqAin48hO3GzZkoDN5GdT7wxH\r\nSNld+czuNla9mAyRqGelBA8MjuWH+t3VZSXEnu6S4jw3XjafuUAjUWklmXWH\r\nSOTNSkiZI9YXUnVpt0PsUdJsNA0lo9+eXekLBwOsO7ResilD6nE/F9SJyyi/\r\nYEiCAc9YUqCIlia3l3QqhsI/bR/eYdBj+3dHy5P0QkX48kKh8DaJrNXcD5AD\r\nL57bZAbwc0IdKbyODhElPWH8Ze/6WAcWEOl1B+d119rdMOXjmMc3nSR0o/sj\r\nA38bG51iIcmO2PmDQaKLLNWa+p9NPjkUlG9MbKgUJd3ltKA2ojXsuIGGoSpP\r\nEHdUFHbL6xYLMT3oz5jFtrDmpKZ/tr8Lnn1UJJksRicX1ByhUlF/HtYT2sK/\r\nxGtRdzRe67umss8ZK6OJpPLSXVZwGqzQcN8yOxWrqGZKU57A2LBmEuAVb5Sd\r\n5jZS5dVLZ6BHLzgkSptvJrLp94rhnhakwUXEucpyb6fFKQPTciuusTwSJFbX\r\nyv+1+Zl52EeOR8vviCNyTkrdUmTX6oz1QBoxFTDTZfYZFa7wSBtYXlrLmiVw\r\n0T5UALnoLymqofoOxUBLOqS7bhhcAKCj3zfQqEvAw2NHxKzYpBrPvMOLg2b2\r\njXo1HBO5t2dPW7CwuarXQt/Xd2gYC6/SRXU=\r\n=pR6Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"84b1822c488a5b5b5d1b900976ee6cdb44633a49","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.1-beta.1_1648133040626_0.4583106258451666","host":"s3://npm-registry-packages"}},"2.3.1-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.1-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.1-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"69a2615dc72b7bac218c05d1b0557c7fbbe6a935","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.1-alpha.1.tgz","fileCount":970,"integrity":"sha512-kHhn/XmdjQP3jjBOXeYF+uOk8iPMepRcOowEiriDDHFSbwsu1BXN6hA+MdUSj4P51k98+iAFTuAU/uqT2lMuSA==","signatures":[{"sig":"MEYCIQD4B6GyIpiOkr2XQKzOd/Nb+xx0BtXHVMYq48ust7g/cwIhAJwwJ3Ml7JsG4RX3vMxsoOfgEnyKioNC054HI0poT66J","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPIPhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpBw/+KfRZPVkzgP2yvSUGfgCgBD77POTwU9CyX5cLPw/+XKrNXLyP\r\nJP0xsOrJ1lIga9RIBilyrMfrxN4mIsIumcF0VnTT5d524WZfILVEE9IaZEPg\r\nQNjOuogrsrJVmih1mQAboriyp7NE8GF+vLBuXFkljErog+Cdbs/I9VReuc3U\r\nCsVYgDCzMV4kObYFGnKmLNJozoGutm9cG8oYJiobXu0M3LNFpGYCt/xGYKe/\r\nvm9roG/VlhALkq2qkdSM30JnHmuums6a7xleEU2xmcFrwoNPLvs0NqEsNwdW\r\nPpEvcK7Y2k4LgEQGUPUiMiDHLSpGI5v+p+dZIDe7XOfyFhbXUYeqAj6bw6LB\r\n6z3F+eTbfWaWBlRNxhuAqqbSt2Q2PrDbY9+5l+Gj6TEcEdmyXNfr/r0rAeCw\r\nOkvNVyRSMpi2QKTZduCimCslFlQgVlrtYvRfKs29LkSsUx/4W6Nv6HFQ71Z1\r\nxTjzkDNbibhtuC1z1G6gaV7FrUb7Lop4Jfg1+jzNPL7QGN0pq1yQS8t5jpMP\r\ndT0cB/ezYY4mBN5wMo4X98jYHweB9iM7+ohICR8cH6StVLwTzWQlkqhwonTg\r\nIrSU36C5ASGt+v151CAMnW0j8xGA2L7Vk5oFazBQY1gDpbAimySkHEII6SZ8\r\noFQpDSswC+CBZKGTphys35ADHReJifraQps=\r\n=VlVh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"52891a3829490f95134da2136184e2beb164c772","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.1-alpha.1_1648133089141_0.49556765100244515","host":"s3://npm-registry-packages"}},"2.3.2-feature-b2c98b-l168ok0a":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-b2c98b-l168ok0a","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-b2c98b-l168ok0a","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"18960d244502b027ac2dba0d1525875af3ea1a92","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-b2c98b-l168ok0a.tgz","fileCount":970,"integrity":"sha512-oXCGyOOWwr+T8dqFrInlKhGN5z4O26xKgk6NgY5DX9CjEam1MhkS6iOw9x3JITnEmv8bydMC2b/gr26blTN5Mw==","signatures":[{"sig":"MEYCIQDZWmPKQHFDyjILUyC8FfM857PnHm9qwI2o12i07gPCbAIhALEQdmIf+KcJwaeXMuzNw9HvqaHmHNgdatxhdYML6i70","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPY/4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqbQ//Ww4KtMf/U82XryT7qtxsXrNC6EgituI0B3+gYZygE966wajM\r\n5isklotA63gQGJWddXQavXTjDNcp+E7O7TGk+vvf5+PKThSZgkl+zRFeeiJo\r\nMuxoOWVI3Xgq2le2z4cwJ0K0OZJfpUMdTA3iqAA+NLkbyWKrnZbt5jSMC2eN\r\nsfgWz3Ev66AdeSaL0vqU7kG7Mlo+bh9V796cekuF9N+hHLISv6jdXQl0DLkY\r\ndSUISdp3O5+haD1zzoGaLD9Z3L92jX4vUpNTeUR28FST5TRo86bdbCdyqT0u\r\nO2NADDOc6wNtceCt9qH30e5EKLqU2YgjlJ6rGyk38HLx911Z6yDJPKHzzfjv\r\nZAay1FVO3EqslCPf5iPNbWqM/7jA8vXfemq2kOrJ5jmfhEI/o7c+ynIXnJUT\r\nceErUKIUb1LB1G8BgM6CG6JZB8HaTktP1MjWLZTssrplSElDY6wOvnAMtguW\r\n+neEASFWiDbguOQXbCbK7NPqFRtLGf1oV70amkqR0ybTcpjz0QExKNTZHi1S\r\ncuQGY8wImRnVz4Ko3kNt7kSyWHk+zId+7U1/qHv+u2OhsWk9sQ17m9j7w+0W\r\nkADRJyueP2tGR71LrxfPimj9C8SqK1SykmKUjNuZhiPsDBI4k62CBEwRZw1I\r\nNdvGRvexW4Xg6kjM4UxJx97ydJFZrQNzON8=\r\n=jaxO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b2c98be0df3ab7974ed8b43fc5e94341eafd0e07","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-b2c98b-l168ok0a_1648201719756_0.9041427441287735","host":"s3://npm-registry-packages"}},"2.3.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"71f2d9d02d2a9082e539685e418186528dc64b13","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2.tgz","fileCount":970,"integrity":"sha512-7Sl/3OTF4fcF9SOX6YFrb2JeD3yiHWVfubgAG1RfscdS/YfUyxoVb+gaVnwSotBB2Sim/5EQP611ManV/WESaA==","signatures":[{"sig":"MEUCIQCx1kkE9207e1rnMmPcNfXqxLu/CygLoLafaLloD0qw+QIgfOSbVqAljiAXsY32q7ywp2r2Vo8kDyLqfbe5RTA3HSs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPZdoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNZA//VPojnncJ8XEUCMy6xp3OjY7MmnDXkrVQMZYO7f1P2s3ZWSqh\r\ny7BhsOZt+BiNPsrYRG11EXHe2RDnS/AHpeHL+i8FErSXbBZLIfhf3ImAkCJi\r\nzsEroPlqzW7oW/6ttokhuzYoRbieL5GcxsWoUM8OdeixkXf4+7P+SO0JUPia\r\nr6NRMBXdxtnYAVDbc1TB2c1SByk+74hmO8zrWxPg+BvDu2fyQUkIISeOjFfX\r\nTmLSptTMC9algmZwEVJDBkGYRXXpC9C5waOuwz3C9hJD1K/S075H134P2YPj\r\ndoCPiITSgSAeE1Vdv9mJsL1t2Ewm7TEz/1LiRuM2lX6h8aiBadwQbVR0Ezi8\r\nnNBPSiwLvK210v6+92j7m5huPL/0NytTCGh9NULXKb7WQ0yf+DafkdTTuImU\r\nigOFUls/KX0l8y4wE1fPW9uWt02WoncdXqDtKHzMhUuWl5u0ygBOHZvNauPE\r\nBd/9QBi4AUpzdyaTdLs/4lzP5RQ78KcOZ/HUbnHEQb8J7K5yb/g81d6hDVh/\r\nSy2KWkkRMkkpaXNc7jGzTuRirCIHacNzsFfxyMXIVIdDFqYRdSltbhIwfC/R\r\nRYIDf8YO09g8tFMAxC+j0oWTNJlkJGQkHSZMlnWfVLvSDU25yQu8xNSkoc+F\r\nfno52NhXXwlIDUKy5c5kkRufcogrwO0MSkY=\r\n=qV7O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"0d4d85af1c23cdb9eebb3c1379347a915d90f3c2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2_1648203624366_0.26204648163829813","host":"s3://npm-registry-packages"}},"2.3.0-feature-267e66-l1ahrdx0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.0-feature-267e66-l1ahrdx0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.0-feature-267e66-l1ahrdx0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"397c212b61474626d227de1468f9c8fd826971bc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.0-feature-267e66-l1ahrdx0.tgz","fileCount":970,"integrity":"sha512-GhaaZdBY6nIv9HKTrcrR6u4aHWPUxxdLvz/63FeqHyjypVSQZQ9f6hvWYIHp6jKBAVIqTApRy0Z813dEA6z8Eg==","signatures":[{"sig":"MEUCIGlXfgfdRthVN8D3fo9q+lq4IdehK8Xp+Wr8l7nlBUMnAiEAzrYg9dgyJwVPO6dPdvYtjtlj9INNyWSCS+KxpvAofeU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQXx4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryCA//VtC4bRuZalnW3cnjWaPZ12IWvnA/wbOQeCNAH1EztXxG5ivP\r\ne8W5bmOpMWlcRxODYnGIr0c3aIKuVa0l1muycQ0mtnQdOxY45lM+mqJOyl5Z\r\nXRJcQBHzk4cL82/t0OIOO0cliS4IwdJ90uWgm93gzR4M2qjG37N7xR1euX9N\r\nbe3xdKeF3fsxMzhrRTbCTTfjKPIr5qgWEloGnCYqpy/ZbMY7lVclcTcVLiHX\r\nVavDa0mbNTrhzg/PlKU+HzO76rwFFyrhSRYHWhLjcPSmB5U1+DqCJGaEoIeR\r\nBDeB/o+x1Rn5ZiaBEzKom0qJD6Axmq8jYuhum+cXI6GRLAuaUYJsoF91sYhY\r\noCXohnW7DlEPHdxRsdeSgcpkVPCXtJ9cXEImgBHm19LaPhJDlvwCMjyn+RtP\r\nowO2Jb9YF8voK5aLd/Rm6zwI4uVYqcIvmE6LbxWoEO3lOdI9ok5yZasZx8R2\r\noFgPJgaKgN+bhiXJxqDGmp41eeVDL5Z6gi6CCFTJhEv7dMvfVz+gptz0NjOk\r\nWGH9yhQ6765LXIQZeALc5zeCKuWhDXYAylPlZlBhKWgJGN5dTqVJBQ5Lkd77\r\nv1DGDo7rk8/kWUXPXFFRYShPoPwkLtdHDWCgl44Th9zYX7JM5FYUvBHqDZdB\r\nnBzB1ntOAH2y4z5nTN1sQ3PBcm09Qh6QBV0=\r\n=IxM1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"267e66013c90d372eb2b76fee8d2b02dadaa35a5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.0-feature-267e66-l1ahrdx0_1648458872238_0.1700868449182822","host":"s3://npm-registry-packages"}},"2.3.2-feature-0fc2e6-l1c2p9fh":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-0fc2e6-l1c2p9fh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-0fc2e6-l1c2p9fh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8d6bd66471c6b761e962cddae6638e0fe0ad3588","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-0fc2e6-l1c2p9fh.tgz","fileCount":970,"integrity":"sha512-aBQx1zLxsCvIA6VAfYbsp1kRfjQaM5QxePtgGPhKCzt+4aVNG0GRj19wCJuPzG7tz3tx4H/EX+cvZPAPnDRS3w==","signatures":[{"sig":"MEYCIQDGDHU39205wzXMUg/PLEESMl7ltnx0nQhp78wj0sEoBwIhAIdd5haeV4IwMBtQeI+oitzshy1Fq2BsT89zqI68vBC2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1667483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQvH0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqh6w//bzL+Z8SlMZpaBSmAEoA+XLEjzb5kSaB0hQycVWUzEHXz3tEC\r\n49f92Qp5lje3fl2oDZFBu6hXn25Nl9Nuc75GNy65QEn1v6ITiSu4xboraR8b\r\nz3Y9M+XwaOGvVjMhdxeWwAXcKLfc1aBmAmSoiIIKz2Y4/TOsYreHZ71yR0cc\r\nKjk3v3Gdwsltc1BJIBILCKSlijmQWx4dRaOlmHDFR7eU8Q2RjPYDMYBRmJus\r\nWszDv+j7ZZziFneSYXzfRJtf+CDJbrSvvnexJ0LavDJ//HL4TzcXvefNvk/w\r\nxFIb+wg5HNbLo48I7U7/88HOPpxIIMyY3CbguUSd+19dCuAEbZCLMlioBBrW\r\nI+kV3OWK/02RNrzpB/Ti3hkTBt8Mopa66fBEswpK19w1BBDq3vjRDRYzeKj3\r\nIIR1PJF9p/jfe0RheJSUy6QxLjg/1Kpbdd6n8I/TLeAS7XG8EtloeULhC9IU\r\nOUUe5ejTF8BxAsm/zsTyXndNFF7Ks1rtHzZ0o+uglTZ7ngOfAhrGAZ4AAYad\r\n9zFlPv/psMtNpDsKU02+fsducXoEBBgSCKztYwU9/hWnBPdwY35dbk5AWe6j\r\nVo9m099hoJ9G7eXEYn0lrN3+De4wrC8eoYtvgiJyVH8vqRYOXk7ldkzt0pYz\r\nlcvS/IxuUrmd0bSAW/6Ou1W5g6mZOC/zzKA=\r\n=36cw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0fc2e6341909b0a359c4d38b07861c3689e4331b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-0fc2e6-l1c2p9fh_1648554484048_0.9341272915282188","host":"s3://npm-registry-packages"}},"2.3.2-feature-d36349-l1daevvo":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-d36349-l1daevvo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-d36349-l1daevvo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"69d2df353cc6c24bcd8b6e965f1894506865520e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-d36349-l1daevvo.tgz","fileCount":970,"integrity":"sha512-P7kPfG/WiQLbwdxKB2cGIujF2e2XGXcrpaKchEP2w1fJaq+LeoGMilLZR96ykobK/ZbWaDnEFN+wI8tPDwxtcA==","signatures":[{"sig":"MEYCIQC+JNm3MjqT3G0LNskIOb3uNjX5oWHBCL8Dq5+Lo+79fgIhAMqRqniXCmuD5CTrJoAVAsAScRcw68ho08dv2kgW0GRL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1667608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRBDJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtWg//fMltrCu/X1vihhvDbn5N6pgfcBqTmWiylBN+AVDOLjNSWEgC\r\ntXJ9P+7XTjhQ7a3vg3OFPfNImGtafrBhcHuX0RIK7rJmFnLS6a8c0ZkGu/au\r\n0Hr3rj2cYyfVP2kIWVI0x/BsHgnfA/eWuo4PTAEL1A1C7V5Eu7+Z2BbXwrc7\r\n+aUJ2FhOcZmQDtAw8ShnB75CxWfexQstoHyvsY058R7tDt54TM3ZnG/kB4mh\r\nTIVGg8SMrgoZIGud1ggQDotcScQ4OUsIHgzX5lSXFPnTLXN/ersvxecgqAjI\r\nxq0K9HhRDHlChHmUIlMaFxPWhsbjoV3+bQOV44ToKzaEbaQHwN9B2KiyBxxc\r\nJsaTZeCcMJBlm+HFqMSxdHK1/UAkTDuFSeQuKAmOHAp9jXDtaSvE9N+xd9WQ\r\nmfzUoz3DmqFo3sT/va+EwydJalL/QpcoAz9eKrTGwewM9C7TeWgGrW0YlmWf\r\n7Ep9OKlvbX9WoOmighLHLGBUN9BMpuSWulX3WnDkSXPejBIq2L9FAPh0aIEf\r\nCRyFADDZM4sAFjOlOMHghRDGww9859HZbBgKq4e2Mw92OKjO7K56raXjLZqU\r\nH9v+yOWRVZ/d63pjZ+OaolYZnpPJhBPL/lR0P6KarBYqi6y86eW7btHJf1gz\r\nO0emqVd7J5uVlU5c1UtRUfBTgG3tibgzlgM=\r\n=y9gA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d36349696efad9533a1ae51b135a019c36cdac17","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.3.1","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-d36349-l1daevvo_1648627913042_0.4643670763128287","host":"s3://npm-registry-packages"}},"2.3.2-feature-f33315-l2egwcua":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-f33315-l2egwcua","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-f33315-l2egwcua","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"805fb2cd040e4401bea6bc6125c8f8b4c7bbe2ce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-f33315-l2egwcua.tgz","fileCount":970,"integrity":"sha512-eu7GVLp2pCYmmienTePc7dlp5QggReXRGx9BtIsmDGzBi+gy5c9GVrpUY6f4gv/GTAsWDQYHoSQvvKk5HC1X/A==","signatures":[{"sig":"MEYCIQCkuWR3VEjbRqY6/GBwMXESI2O1xvlLjebepnvxtdIjUAIhAKgCN/ZqZMkdWmHVU1Jt0gd4mI4Pve/0p4UMjTc4FoMK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1667608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZl6GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRSw/7BHj0DnR3xQSCq2TxNjk8Daw2oQqn9mk8oPwY0OaF0oCPgjvx\r\nuI3+v+FQ4YvdmzeHg/sj7EFrrJykF6OHLaAgcKfCMeKNrrEwDjuiZwg/3OQ0\r\njBvYoql3LUttETrUS7aV7AVRYv6Ju7iTLBNUOPnxEOETObbnvEIKd+o1/ozz\r\nofcQeG5mAqc92aoq6yvHlElygqZXFUh2kqaC1Fa1EIautH+Zmu7AxMdaZzGc\r\n/V42S5kuRBNZbTfHMvzsNKUBUsbOt+3gRdFR78/H4WCXYcr/vzaLY3oIer68\r\n6lU0BfZAdSKssbJBBwQmTbFoMe2QcuAvwEXvQ7HFnDCGDwMIAzWlxGKAQ80D\r\nTSUlkoSA2YreBe2uCE5VmUvb2kSjDVFERtm2mk2gb0r4t2SGSElO51TIQAuG\r\ng2lptJM2n0rHEiZ9DKBg6y37HQepm/1lJOf1ItOKFSoRE0Dq8OVlHTE2flfZ\r\niHVgDFNCRf7JdIyLHl9VFEQ5ZwXcZwr5riauO8NlFLnTR0VyDx2TQsWtlvcc\r\nGI61ltt5N+6M5wsrNIrmbGGcZ3ET3YIHFu19HLi3gBTrv25C1gXr4ApK9H1p\r\nhg+DBWxrBebO/jS7/fCklfNhfBKDj+hM2TwoAoWzEEA/0puUixGAvygFGiD2\r\nyK348s2h/OFixzvKqYCrZfKM+sYnYUeh7LM=\r\n=/R8v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f333153d90fb4e4916c00d3de8444a815d5b30fb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-f33315-l2egwcua_1650876037852_0.19621206324922746","host":"s3://npm-registry-packages"}},"2.3.2-feature-bbb9b8-l305d0oy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-bbb9b8-l305d0oy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-bbb9b8-l305d0oy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b6a5cf8d4b0461cb9e6428583daad39f0c40aa43","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-bbb9b8-l305d0oy.tgz","fileCount":985,"integrity":"sha512-v6qVtprnMfU/ETU7R7IcbYk7iLm8tX1s3xsE+rRjxKoEfXQHWC5j5StRzfZi2qlPmm5IQL2iatmYj/woNDi6wQ==","signatures":[{"sig":"MEUCIQDWbr9JAfzPJzXw63ECTPHchJIOP3z9PqWL3sZFcut7NwIgYImXS72k90FMR6b5/PZchaH6WLCz1mGwBd4/975OuSY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1754685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiel8iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrM0xAAglML14SYG6HOrkO+mpc3fqGzt5u9oM6XrBL6ooW9w0naBXoq\r\ngu7rmlidnrYjpaCG+9BSEyEcrq1EZ1h4W+n1zrw9HKwCW5DEVIQAuKfHzVt7\r\nyYGVGOfLiOV18bQe75IjGOiGa43A77Zy/oEjeDbRyXpAbeIYP6HEx40/KaTo\r\njesM7AmcpcxOu1aIKsgqo02JB0U3sK4nX9/vl3Y3lJvuT5qKyQZeoF4WN5ZV\r\nLuFd0IzyFVPGvfU8BnvqoWR9rXyX41kgS1dziyvw9GKztYS1lV6OVPsss17b\r\nrtmXjjZZ4GbIMqNkQ7/oeJef/epZNT/AFIP7/Y1wVTQU8nCOUHDPLM2wSnoC\r\nQfuSnhD76S/8gnewio1r/fl0ODMAnrYwNPA+30qq0i3GtFvgqB42DydamwP9\r\nO6qU0FiZZ6wBQpbKyyY1FcRfR8xjg2b50PBw64GlKNZWIuvgLQHF00572Cym\r\nRePl3fcHYFbYM1icx/KWtO5AvzWAD7OmWGebHeRJqa/wr1VxRorMKLSf+qBp\r\nIeM9L3W3v3+jMnAaSspzpcFGDiCaIsVgMfp5/42Nr2bqX3x/r8ZSQX50hYxS\r\nn9b24qf3N/SxgfpD2XKy0bRT+BColDr8etLp0Lm6g9IS3pLmXm+NA56Z8K4S\r\nURM2atCTowtBKs3Oq44WPuQyavXdHuaod7g=\r\n=9Cdc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bbb9b80da17d91f23f219360c6d9c4b4a3033e1e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-bbb9b8-l305d0oy_1652186914004_0.8076229027531965","host":"s3://npm-registry-packages"}},"3.0.0-feature-ece01a-l3bfxyf4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-ece01a-l3bfxyf4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-ece01a-l3bfxyf4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2c50d1d220d2172e14fbcd5c0c0a9919d83debc2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-ece01a-l3bfxyf4.tgz","fileCount":955,"integrity":"sha512-pey2eUIudA1dkOHIh5gVTfE1F0K9OuhL62lxFnBGX3YKgnP8XOra8AwsBqHlhpaajQ7Hohhx9dvK0WDlY7AuVg==","signatures":[{"sig":"MEUCIH4Nthu2YbDehLCCY3v4EfTAX+ECKeWpPk8GwgRq5PJKAiEAnzcUcKawiObnQrG5t63s23q/LSWm7B9qfHeiELnQmfY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1656650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJihMrEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSqg/9HoPejMS/KXjizDmXUFvy9ZxWLASSuy3wZaYafGoTZpwnMFqU\r\nJdL0xRCgVmMRxo+l88Z0LLZg5b/UqpkYwcx3z0NsVe5RwclBOAbwZgGtz0Ia\r\nvqtoVbNrQQCTQ7z7LnMFZY+JKGKRukZz1b98VmLZMqAXt+uXeg9gvHE2O/OQ\r\njgS0ZcuDAoRKmHVNPyovy20p8xKW9jQ4Qooftu6vIYN4Zz/zlDOeYeJMpkHR\r\nVBzvszFpM6+GnVuWbplhyjw0HyTAvTVnyDmYgmcEL7B/MaafHsN6MTwmOk0f\r\nrLMc+BTKQGouvxxwOqSnCa9GryU6mre0MjtcwT74xbyTNGeCjJYRcPe2QXVq\r\nNiqMX/IO965lBH3I3VzeWgYRBCDJsbh/b+PNjNaD9BOQ0f4hgioOWJTg/CJA\r\nn8NSlCuWUrdtBgcQTMoGHirJMxzZSPQvJ9s2bydwhY25hKcP6KoMdcg6xZMJ\r\nLFaN58wymc7eiFWSiIB5tZAOrIXsdA1PAT+SUYWS+auhJ95JU/WQtE1y22lf\r\nvxTe3zF2mu1kX4C5YQgaYGQhmZYBaVN+zSaKReh7ymte3rH2uln1UViEJ2CW\r\nfOeyX6U3FL4e2nyayY+SjXOvBEK9ohgYwUUIsCZGSitWcL7LxNIm5lkGNihk\r\n/QDn1DUHyrzOjUF0eqKGjw1eIVN33il0AG0=\r\n=rn4+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ece01a62b18e7dde60438a2569a096bc472f0290","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.8"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-ece01a-l3bfxyf4_1652869828421_0.6274862670148622","host":"s3://npm-registry-packages"}},"2.3.2-feature-04e442-l3jsnjq1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-04e442-l3jsnjq1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-04e442-l3jsnjq1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bb4325e40e1fa419f9b1dee7763cbd06f002fe00","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-04e442-l3jsnjq1.tgz","fileCount":985,"integrity":"sha512-W2YVG1m/RvDJpd6PdTWzBKiTTL466CqiNEhf649fbIh0hsZXPO4cXyBGO75x0BN9mpvpY5HL8sj9W787dXtpsA==","signatures":[{"sig":"MEUCIQCkZnQPJKI8wP4jzBbOMfQOeLY1ggKEV6gSCfjE6zxzXQIgZ6JEIoqxgO8SUCqMvvKIXQaPTanrRDV3Ci4CKyiDOXg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1754705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijH/dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqXQ/7BsnTV41Mau35OEpLR519JeiGSA3I3cz8XRzPWsLQBFmNudaM\r\nU2EmEmM/ySSfGES47dXQH/9zGNxdlWuENTSozza71K2BQh9AULT3agothHkL\r\nn9kAFtig31Mm63i4Rlf23umNkjBUnH3J0UEyDVMTuOI1N+CBCTdVX2qAzSGt\r\n5JqjK2TXP0ECOuVQZN4UjpMOzfFjfobgj0jEaRG+XUI0ExzPigKAJ8Wu8fkh\r\nmWPbE4kTdh8wxUVP88Z+JD8kTfro07Qva06PgE0oqaU/cwjmL+jZo+yy2fuJ\r\nOZU/u0rDx2k7/ZyIUJ2ZJjcL9tWMVg31GF5ZqdOp6Ztlo8PG8E65DT2MFMD8\r\n4aUNnnne4zyhrcfbeDPIRuGLXpcapHTbfj3gv8cpw+One9oZ9QKuMxstbUgx\r\nSLm/EToGSW8orajy8mBVWIip8QkjARzWZuhd2uqj39BV/Lhr5Lh6IcVl35Ny\r\nc7ypqy/WxpYCvM/lS7m/rcRljoY7WxeqrOIyXPZfZifm+aF9xFKImAclQLEs\r\nO/IAlIok6CaFsx2eEVRpa9x7k+iZyrTTk1U7Oe9aWPQkuOcpqSnfJN18CtJj\r\nW26b60IaHQi93XvBQVwxEWe2lxGawjvblhPbvWv9Nyi6I7OJC/NUL5W4Deeq\r\n73SnphLi41m/bU4x92Fiqm+rgbIVPphW914=\r\n=kvkH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"04e442c63148a6ac445bdbbc5a551f5e8c1ff7ca","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-04e442-l3jsnjq1_1653374941218_0.7354700346532383","host":"s3://npm-registry-packages"}},"2.3.2-feature-89e4aa-l3vb87f0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-89e4aa-l3vb87f0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-89e4aa-l3vb87f0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0f18eb424abe9d9e37fea49068903a3150d9ffe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-89e4aa-l3vb87f0.tgz","fileCount":970,"integrity":"sha512-gNfmeAyNpA35/7TW0rFVjQ28FQBvGMKuPR5s6BI0Puhp2rwdMNPASNpbO6CAttetkGb6tq5nNBe5sdm6fzvXAg==","signatures":[{"sig":"MEUCIQD3FDMl/fe6cgYFpwUqVTPaBfOnlCpSDr2o+DBqN39PZwIgavO0oGwteyckjqurFYPoGNt9RD3XAWZzdVPKVW+rjHM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1668000,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilx/OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroYRAAg54pmvqNGRdDkRje1LleRya1KDhrvP88CWf3H5Kyup5ONg7S\r\nnpokEHHa1oWdjN9N3ZFd6z4F3h5sqozaIGKeF1GeQL8ZQNYUjema3zgpMKRH\r\nJyGM3fpAwVc1uUiUCM+1TbCutEZ0dTqFNc4uNsYQO/kzRiOxaf0WaYxWOmph\r\nujChGb1T9vXk58R6xaEG29AIEMYj1AmlR0HgtQyi4kDHoLTNfq96z0kVZwqc\r\nUx/iMGedKbpxmKRG2cqzfXmBhp6679EdFehbjndwlbY9t8ynexgrSWzPJPcD\r\nf+eTAnS9KO+bjo0AFta2JqMJMXWbxGEq1mwYP1PL1Iryb6aQ4D4JeRoSOyzx\r\ntfTch+w8IwtgYl0BeYoW3xZmV/KhsGzfQ09890lLmm1egkM2GaAD4L2xgG5Q\r\ng+SGbyq8i63bBdesIhliK+c96k54XiiCHiv+ar6WuD3jTT8kddmuZOi6xdzt\r\n1sJCkcKMYtvzWsSngHHtXjcgMEI5vH5busMvLdQi3t3RVnw7QKB7hWI0I8J0\r\n2M/N/5k7t6t2bQcKtdzNupIDIvyxDA9AN5aj2a+JQyLuMlDm8p8WkkkvvsVP\r\nXbewFszNNt4LLUDm1C5JfXWR5+StcygbnIE9xzng9bI1eOY01nsweCXnsVWQ\r\nqWfYVwRGQKMT2ysaQ+RqdC4dNw5SlfwviOg=\r\n=lI7B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"89e4aabf17c69c6e1acc5a200782bfe26321f2e9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-89e4aa-l3vb87f0_1654071246488_0.6563945375579281","host":"s3://npm-registry-packages"}},"2.3.2-feature-d48a6d-l3y8dr55":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-d48a6d-l3y8dr55","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-d48a6d-l3y8dr55","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0aa5c26e97d6e46ce61c0c28e995a8403b039497","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-d48a6d-l3y8dr55.tgz","fileCount":970,"integrity":"sha512-iojoN+iLYikFm/dvg+8qqGvw/B/IQ5prfY45gaHT4f7VN5Wl2G3lJWCF/xHy4zf/01s/r1ZLJz/RnnbdOrLtNQ==","signatures":[{"sig":"MEYCIQD906HWtvQjqq1HbrjsrhEzXj41EGqKeBpIXGK4cbYY1QIhAJAycwtU64XdSFpRgk6b7bl3v7DZRqM8022xYBJ/I6qX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimdGRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJAQ/+OaCjP83Mp4ebUdJSXL5w7R4DYN169Frro91+dImIcyCs0d4r\r\nInljTVqggtale1EtfuNyaox8BHfjbPHgry+6tV2f/F5wZlMEKrpTIvtovyDY\r\nOOpLU2dHgGLBGnoHo4rLtm7yogOx2ACxJuCd3a/6bQrUBl1eqc+OG0pgCtf3\r\nV6iJ7BUbYgQgoJ118yr2C/OLcha/qdwV8er/mHhl+d9oQy/6mOmrR7V0JQOu\r\nGIOhnmUK4acGijToBxMqu8nlezMoP4v58leSzsLvRIyJHR7ZhmgtpJ+mldhm\r\nmM/6j3MFlFlyx9VaSfoKISiqfQb+xpFqmUDE3/J5xdaI4zou7MCINvWBqXCI\r\nuM4/e7v11Onk55F+ACQj0kTgswbC4w+Ix5ZkF5lH5A2NHzUkicAYszm3PEvV\r\n0CflLrPbsP4cO4LCX86v5zZgDCevLMuvY6b0GjUukP9/vpbeCcsmHWm5N9hh\r\ny7n+rkAcm9MlofjowvJvR5vUs8HaTwX/wHLiO3HyssolUXyivYTUe8DDw7hN\r\n2/XEmLBuKGjggRhu9z8R0bFferJUyG0vLQNjqh9QnNQtBb1FwwUnwaBROUnQ\r\nZB/I+uSAu631/Ej9iCKkBoIh/RtykRrS2rEppx78dpV5E1IwOcIH0wFIEghS\r\n9tGeWTSkHWW7rDxo7k2m6AcWLVnZkSyfP3g=\r\n=wpAQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d48a6d6fd530a1d9c6d02df0c5e8295b3cb84ccc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-d48a6d-l3y8dr55_1654247825599_0.29240973423316663","host":"s3://npm-registry-packages"}},"2.3.2-feature-0a9e83-l3y94ae4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-0a9e83-l3y94ae4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-0a9e83-l3y94ae4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"91e54fb85614c47c70d9515d190169fafabdcaf8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-0a9e83-l3y94ae4.tgz","fileCount":970,"integrity":"sha512-on3d/TcVpB6pwbvU+Jxaytf9vmk4+ErZp7AvGWEQDqD8xkSzSNrq6VHNv47laqJNv7xwWg+z37MfrKN5+VfPMg==","signatures":[{"sig":"MEUCIQDJtwmfb/oVy4Sz04acKaUri9q1Lbe39FfzluP9Ib3sRQIgJmnOF5S2GtlY1m7WMqck0+tNHYKAsXSlabc0lzShVGM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1664862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimdZuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqiUw/8COt1RzKdm74ObRX/dRdgGm9K5LpgD1RjdGBSLlhqfVzXFPIp\r\n4BS2a30MQ9Q1tvGmBbO7bOypvg5pA4Emcjvnk5fDnD+UiZRaPYywjSH21HE2\r\nvWpJm9AObdx0grGJXuQglfKp8B0d0g9LXEERF6JBFSfkDcU70X0hgP9MjjJy\r\nrd9YNpFO/x5sq4MucaYaV7uv1yivi03lYEe17BLdaoc3ogtXdP8wS3bE7Q8V\r\nHE/PCNRMAD2qaxxg1oFSSi+1SPb75MR2f9U8Gy1n/hw6PuYJR4+qLYjGk1tX\r\nHobPk4LT0iApsmZqG03FYioHQKo79mGLaE8xjCfr8e5uybMwtqlo89OuT3VG\r\nfjv3Ols0k7VQCIN8A6gJI4K83oOSQ33APotsn/g/rkJjZjyHFcDWWydOYIWb\r\nNS5A7QZVkaMcw70CMv2KDim1H8LGFIS/XQ07sfXWR58d0nLjJtQltBpg1eBt\r\ncK9D1VU+wlOKi5Ji22lDza3rBE1M/0ERnKZM9W6Qz4ZWQ9lFGe5RT5T4gpvE\r\n5+QPYpKyyRaSwhmp2D2MtUFTS17GvB/+kUzd1R6GirB6BhOLegq3IbrL/zMe\r\n9g7TAmoV0efeIr+sUfrmnRgNT+GPNcNP3zQ30pjwGeCyIpWgHxe+TeY+v5/1\r\n3up37cE35fiMYZ4YQrPSemLrYgHpZDQiA+4=\r\n=JHYj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0a9e83a007292a19eff8e1dc41c7aeb462e52cfe","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-0a9e83-l3y94ae4_1654249070099_0.01788512526237729","host":"s3://npm-registry-packages"}},"2.3.2-feature-b95934-l46rl8xu":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-b95934-l46rl8xu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-b95934-l46rl8xu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d499945d4c497817624bebbc853ae354fcb1a21d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-b95934-l46rl8xu.tgz","fileCount":970,"integrity":"sha512-Wbz+GSEnvorjz2Fxxb3LgdhGjVFXePqk8sLVC9l9UCqKACBn3dzYwj81sfBYNQYNuP5USThCgQH4HNDczFVljg==","signatures":[{"sig":"MEUCIQDe1+Nx0OYbQ0hJNT1eTHjDQKpeVyVr5Wd0K3QYOq3T1gIgaM7xv4GEaJsvrrqOYwFxHd3Icp/CNbEmF+aZe+geBiM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiobEuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZYw//U+PZCyj8Q2H5a4vQb0Q1y13CS2P0I01Naenk+aE5vqhGp+pU\r\nGG6oDdt0oNcP1Q6Sq4o6GVnlSECJs1lKaRoZG8Wgkh1lM3f/H87uYcItgf03\r\nXx1czUADPbcQpvj7bFeh7BuEsPEF+Hl97iXRTrt2afKgPdLXqckMTN0pbB0T\r\nzcY76Nt8zlaMCLn4e64oYURYc8eOn6wZZEDFZU/mVAwQDcgBA+AKhFEpqRgq\r\nByWe5ImWn2dk6CrQEQ+ZE8/3P1pu4cpJy2qua3yPaD1e7SYT0M1dlqLZfN6o\r\nKMnXcSUdGuW+7SZLe0drdd8nve2ChEiiNWP1vWjRCdFp51luGJ1ZIvob2HWT\r\nHEZRtlLHa7qXxf2FkibWBBRqS23ha6Gf9zkQRYvBs5PohRRTrBfxFJC1qpl5\r\nGyA3kNOf+AqSJKHjQ3p8tgJelOI/Hv6yvlOlxYS5S+osW4OjVjINQ7Wuwjex\r\n6jTqSsu8DN2QPYS3FwVOuepxO00quNUPBkcbdWh6IIAYMEyDhkU6P2r/Zk6K\r\n44ityS3TD28SRLBH64wpAdL0P4B6pMx4or+cKimnAymhMW5rGQCHx4UUaPnt\r\nyUtF5dtywlafxICQTAaHIW/Be1/NIGfye+H+06QQNgNw5JIg+dHMeCSOPf3H\r\nhU2js6VkYEOPFZE40RdeCVwheNXiHzImOb8=\r\n=nFHk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b959347fe7b3b0711f045dc12f3a563df058a286","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.5.5","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-b95934-l46rl8xu_1654763822347_0.42354310274075546","host":"s3://npm-registry-packages"}},"2.3.2-feature-d3aa75-l46z6rfp":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-d3aa75-l46z6rfp","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-d3aa75-l46z6rfp","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"42925095a921eb2324bc51af010378a94666cb93","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-d3aa75-l46z6rfp.tgz","fileCount":970,"integrity":"sha512-tv3YAv++XtO80Csz4EoQOVasfL7LUXGCoisfRyIUC/0kuU8rnRd7rvu7IHP6PUX6fjjbqHLF62TaXIzAnTal2w==","signatures":[{"sig":"MEUCIHPQAteRvJxBVJwkjaqa2kT49IZT0HJJ12J59OS/JcHmAiEA0w5+xXRw5ubWYi3HMXoLszw5lrlLdO9q+PqY4r/kVuQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioeMWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+LQ/+LpEZrH3tYOvv9gSBkAfJOl25nF9aFBuViDOzY73rSWAL+b95\r\ndahkEZJG+KbDsZf3QSqaV55Uhugl5ugUol2IsibQ3X4xZOQ5YB2hVR7MIHuN\r\nTFrdmVx+5d+G4vYrAeYJ9LxidJd4II4/O4Ot44Zu+MwqbW7yoin4vRhLCYwa\r\ntuHhE/Siguqls4iy+SqbWylj5w0fP0uip3h49oIYeG30/RD2j1/S65d057To\r\n8sx1lifJje37t5atEqBmw8kYsMVtcuILe2lIJ70IgQldVesC1et5ZgP/fx1V\r\nBxZXwo5IM4mkO8aIvzNJMDdv8HEQp22d8ugWkJEfWLhxEbOgZMxUHAIuKo/u\r\n4O8IqKMFdwQtQ20aJzgTQVLUtVKPWiWIErqf1j+DpS+sqP34vfluwugwltYr\r\nWb0Iy93rL9Z8OU7TM5ETBs4O44BZiU3QwK6phsmVDUOZfMroBouUk1XCNbiM\r\nKYS0LFCdau81IoiBExKpdZj9CFmvbylHHwy4hZqyvldVwmIFcvyBa228FSXz\r\nbhfuh4q4H/UZTnUMcc8tOKnZ7EXXp+fI8p5j+w9ga+Ug5dcLxo7Vgyq0l2wc\r\nvQ3+TYUzDXWp9Il2o7jxNKkVYm+/AyM5ayJbrkLYnvEsMkhZMasgVcukDh0Q\r\ntxzwY//m9rXz9AVbTXna6MJFBEX0baC+pvQ=\r\n=CFgm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d3aa754de13a4bf17bb849cfe0e2825b90be8e08","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-d3aa75-l46z6rfp_1654776597863_0.3171531801719403","host":"s3://npm-registry-packages"}},"2.3.2-feature-f773bb-l4739wa1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-f773bb-l4739wa1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-f773bb-l4739wa1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eb03909983e91c3eb30f4b50c592aacbce8a0ecd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-f773bb-l4739wa1.tgz","fileCount":970,"integrity":"sha512-WJ+MFZaeHT/CdCoET0X79/pmPzEzJELLvx7WU7gWWl0Ma2gCNIYvuRJ2Cydb2aF0LtjLxGCQ4KXkOdD2Fb0suQ==","signatures":[{"sig":"MEQCIBX8pVfIAQkgeWmVOerQBK/8LfOGgtnvsRpf7l4t/YQDAiBtFSVJ8a/0gEtXHTLx/Rl+CWtcuM3rXx047Rf9PczaJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiof38ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhcQ//QvoxVtGI3rTsxuIAz0F8StsM7ZSYfqzLyQ3/zN3ozqjZssxN\r\nYQb5Q2oBAUS7Jw4owumQS5K7uBC51dK81geUNeLeSxkrYO66UuG+83dUx1O7\r\nrguxUmA18LFGL5EvqBY7svVqD/GchNhoRQbWoWNdQDOmNsAyy/KU3cvA3PMK\r\nqRvZvPnIdCLx4ZCRJ3jtKphhMPn8qnOf6kqPBvzACdxqRMutxmoT2E+rxQmF\r\nHcq2m2j6kNH+fpTN+5q2mpIAuyZ0KqH1R3ASn6hChFTCIXu3n0LX/1lT8i9t\r\n3rYWWjL3w5IovV2bio2m18TxhWduo0XxFFFboHiMLfL1u6IBP7G24MkEO5x9\r\nffybsBLhfKj2IOxEP0PaWUYIy/y0WtIT8fS2HHyCB5kFnHxHDTQD/NwsU2DD\r\ns2ABZAAnOzv9EDK3y7Gi3lwu6wxpRkotWeFg1Fnj/JjMj0qhrrBFLRdp/Qeo\r\nn9P6OZMzOHEI1++jFG5ZwZIIB1bp77/iLc6xfaIG2jjhxM0udBAgWWM13MVv\r\n3U3RxIGZSGuob9LVLQ7/6p2byf0Z8jhLr0IiNpPdKli1cOMmBbvdoG/PryM2\r\n5toECvCwNZUnUbcxbvKBlBkj5h13O6ucDhGmxtMFMUwyw7ChwgoNKB4f4xgx\r\nu85NTUoJd1ZsVIyBRxwxlLqY69boD/qRFuE=\r\n=PpD8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f773bb32297712812269ba4d9cf09e3adf07942f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-f773bb-l4739wa1_1654783484023_0.9605914490120708","host":"s3://npm-registry-packages"}},"2.3.2-feature-6fe409-l48fsiio":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-6fe409-l48fsiio","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-6fe409-l48fsiio","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c695b3a11c26e5ea2749013519874c268e7d76d3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-6fe409-l48fsiio.tgz","fileCount":970,"integrity":"sha512-JUMlK0d2FPZhdoiHo0AvGvW5IYsrzP70vPF1250q7i720VuA7tqARZZBNwj3aB9Ij9ssCgQQgwcUReQf/52DXw==","signatures":[{"sig":"MEUCICVJvHLaIr65277BzoPwH43gOUDsV+PExCGscvZxngBkAiEAp3y8xUwTV592X+Y1Rpo+lDXyJO7hNLt0taEt1BrBOWY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665212,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiozxDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxbA/9Exl/8Yq6/g6lVy3KIKULcsEkvg1GGFAFMi0E69v4EDtlhQ3c\r\nwaB+gSeNI2tgePJ/MSGhWLMKSDcZcJloVlnbnryHbSxlAoWiI6sQnh/lfSbE\r\nUBps1YqWrqGr9q9jA3TYOIQFIbwxJCLQO0Yr+6sRr3GznPvUAIFswkz46/Gx\r\nPyx3PohbUgDNWVm7WKk0t0Um57JeE35MD1eBDTajVhwk12g0WJvW5UwJFNtX\r\nNOmpthlnIYN8XCTvRke0hDpw7QXF3WNB/jfadlrRiJrWtzjbnlwYGF0IT+3i\r\ns86TjcYoGjq66j9ggz1oKLRzlLdVETRjHwpqORLiaw2KJAgqpeC+DHS6TFlH\r\nAFMhmY9eHI6QI/EHXhjSd3W2NreBSZKz6dSay6KSoZ4WYCRK8qvfYdAnvQ5M\r\nF088bsql7sNVF1GmW77AQDfvsoHUJlpDbDTzxyehuy8JW5TG1H1YLx9z4NWd\r\naX/hs4rturarX1pwbCAzI+JymHGwwaNjAV9qIGIyUBgaBmr5Qsttk0rQSmu3\r\nNN+vHB/2t4pG5HXtj0AhCQPyd0wIBBmqbFgKFaaod5avV/+npN0RQ9NZ9yfx\r\nLh5FzupurWh2rPl7GBiptHbRwbVIXdTndnY+lj4izR8xLwMOvFO+gkK3Bim4\r\n3cFNKMHJlF5V+f/Q9cP0BtYhaWNumzNFTLA=\r\n=Lfjz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6fe4098b3b2922415709ea2b8b52604e3f48c6c2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-6fe409-l48fsiio_1654864963463_0.6895123852801379","host":"s3://npm-registry-packages"}},"2.3.2-feature-e7ca9c-l4cn2kfb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-e7ca9c-l4cn2kfb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-e7ca9c-l4cn2kfb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f44d100190012a7ba82e1730b37e22bbb36218b7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-e7ca9c-l4cn2kfb.tgz","fileCount":970,"integrity":"sha512-WJv67TgEygdIM7Vi+k/ajSlUeFrIZbhwvHMiA57RDIpploZsCerq+lgIXJ/oB4TwG+ymdlK87csz8AFtciWw3A==","signatures":[{"sig":"MEYCIQCDa4NhUunWjAbJdcuXaeHj6K9jW0mT2K79GNFCaiwpHgIhAJYx5tLC8GTbv7RBecMsAuvpTkrPbaJDVRH9WU7ePXeH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1669460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipxzDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpX7hAAgCt/CaCYwBKnz41PuInNRbTJ2sokHn9LpkOLCJhSGO2fK/SP\r\nueYjo25gJXWyAvhoMEkoZun22nWIUr46uIIeF9QX6V6QR6zc0r5Xg5/9Ec9L\r\nEQEWC8iguUBHfjB36rK/BkEAa0vXWRUG2i04AFCHgqujecEtDIE5JQx/NPON\r\nV/IhBcdJ7gPo2akGEh0YEGdm7Z8KwklmQkLlcJybrErwDBGhxqfqynf2cX/N\r\nMPZYUkCDy2Q6SHdpaQNyDO13ZtRtwiFVwts/HzRVY2ArZ02lmiNzJgc6Du1k\r\nj7ZBTztLPm6ziRLp3RGbmKxyIf0SR2ZaQ6vi1FB8RFxAwDRjFIi1nsNtV2GJ\r\n0upGMwujLqHoQb59+qBnMZ7wmviHuGBqebrzyXnUZMoQ9kFU8OLYjqFHyQOA\r\nLFmCE8I0cJD3guyQybetJXkH/4J18W+olVGNHItjGFtpsTGwvYdgc6a0keH+\r\nHSo5st8DV/s36y3CgxVS6ila2tT5GL4RWRxsWmKg1qUgflnXAdhzf59kySvl\r\n3oS4erifWUonmT/g0rv2do+uLLUXeUleEZHCnqoKlQ3N5PE5hfsyom4nu56D\r\nfDlUKIcIriscB3rebP7e+tGJ/q/YWHLQq+FtHWzwOnMbYOSnMoyhXV2qgEn2\r\n7CKEFCaBtGdXR1MCvDf9WocwIkn/kcxS6m4=\r\n=RvwC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e7ca9c4e35ae442cfbe460d6c22923ee8eed7d27","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-e7ca9c-l4cn2kfb_1655119043283_0.7337390655931901","host":"s3://npm-registry-packages"}},"2.3.2-feature-961799-l4dy56mp":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-961799-l4dy56mp","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-961799-l4dy56mp","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0d5b886a1b3e4dcc094d010c48c7dfb77d8e0bb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-961799-l4dy56mp.tgz","fileCount":970,"integrity":"sha512-h5VYzn2lEHv5g+pqMpvdWnxgL/heoK1K89VQhNQ/dSoGjIJWNLfGq1hSvKeWZkbCceY5ySYid1KEKxN0ShiYjw==","signatures":[{"sig":"MEYCIQC0xpjkSJpw++4HTEUOTSMobDzJ6icvMDOxNN+ZIuZocwIhANLhS++9MqHzEuqaNrKgyHlEFqKiqPJNobmRjA5ZzHbd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqFGZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgOxAAneWs27GfvELJfOmDTCn5OgK+A5E8pjV+pQ4UVMf5pJTENyhj\r\nvpcX8PdDuhSZfjoh/hycO0i885Qh5dUrGe7/la+htvZdtFEyuSzYKzhAJWKW\r\nTykkKhn0CWromfJ93LHWIW1oPB9tcodF98xIPlzYq9hL6nnGGoBRXo8WAiME\r\nz4rlE+s8MYZr50wlaFa7Uy9OQlLD9pvTE6M6o8KgE77c7Pxb0ITNZ8R8vY2y\r\n1J5hJM60FjZrq8jLmI9ELFAusaKbvQyd3p0HaXNxlyYh46irtNM58ZSd/QWX\r\n8ND400lDfHe5WQJEQHEKXNJRMod1fe2fbHGIiVyNn2ZzKrnlcEqjuJvOd5EH\r\nJsnHdrPGQOTF9FXxVOpaeQ1Aly53S/mys3bKZfaO+GF1iBOho9bCWf/9I7AH\r\ncnp1xx+V/KIBOsO06/KgpH4B+lu3+1kooY1bVaRrjlG1l+RIar6TE/9DEMvt\r\nPnCmF6qW0giyTYLNVH92yi6HNNkJCAbqjGGajYN/TnBekgb9NhmoT3fmiOcB\r\nVoxOWByOmqBc+x98g3P6JAX/v9bvKbAtLQ8refen/l76lfuLbux//7EXpcQp\r\ngP35WbKIqUCmYV+ToMfqRTL+qBXWE9hUVZ3IpaeIT2Y7+sP3oVqesPhw0ExR\r\nrxQzbLwAJXxYVyp9wmQlwLkeb65Q7VKlC3Q=\r\n=QK13\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"961799b08b39d15f0b8f471e1cf79b642cb1a0ad","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-961799-l4dy56mp_1655198104953_0.9215342951569849","host":"s3://npm-registry-packages"}},"2.3.2-feature-939ee6-l4dylfu0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-939ee6-l4dylfu0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-939ee6-l4dylfu0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ec7c8630e951be0ab87e8c6a4484fc126ab7b6e1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-939ee6-l4dylfu0.tgz","fileCount":970,"integrity":"sha512-4nN6a2/1RYoGTuPv3ly8MKZ5IRwGaZEU/f+I26Zvx9wsuhew7CPecu3r2av1MWQ4jQAOMtK58xP5cSsL7OAADw==","signatures":[{"sig":"MEQCIAZmP6Xh/wy5WDm4WyvZ/Cz/ODemhTkmX90szE1rNKpqAiBOpV5f3osRP62ntSP2XtTeeaKA95qgL7C4aDfQ9QCpEw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqFSOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoB7w//T9y11y9xAfaLBRqDpq95Q4iz9iC4Tz4fzY+0kJQhVMTagir9\r\ncEp8kVrGOBgOwdwqNoMEVE822r8msTurnimipxRAErpx0rKG5ZpYBF6Pq0Q7\r\nC/Oh4uo9AxMx+uK033LnGBXAQkErfXrSMl7wtRlgpvxxJ12FC1TmHFKkMN8w\r\niy9ra/tbQEMTZWOu1iTkAvszq5a7L0wWvLKwbDLI0PDwgJnZqyldqu+m7jKH\r\nfm+H3+0UIvAAZH/VuwC17tjSwAeXHPkSY5bB3A72cpGUo1xVT3PfUcgund43\r\nROZxPPhdj3V7c6wMCmk3Edfeuxc8173U3FDnzgM6dJS4fupkxgsFMzIsSJ2B\r\nntPQok7eHsGynO47oVtYLedqIMRSxJs3TBYHSIUs04mF+2kIiMoG5wRW6WwH\r\nbwsdBVgXwLKiqHP+pQx2soT55KSLsMh+lWeFyBjA07QHz3Yxsla5llEGIL8K\r\nDsYF5brsptSoBaKRJKt06mXp1W57OyRlgNr6+hY8QWa/aALjPbEXk+C9pKgO\r\noZT310xZY4YJwQ9ezyY3LdFkV6CALMgk2l249Gka3ZH/uA7DpzONDa1YGhIT\r\nq+6DiA5xuEo3XDwdzzUR7Q6ynOTbjZOiEoJmJLaQeHVabjPI7T9Y7droZi/7\r\nHj2sEVtIPbkiBndqVsLn3lVEJQFfgvXTX3I=\r\n=+0Dq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"939ee6a3274eb8e743ca6008cdb2464c4ec56e53","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-939ee6-l4dylfu0_1655198862167_0.703664074766384","host":"s3://npm-registry-packages"}},"2.3.2-feature-f773bb-l4dzehsr":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-f773bb-l4dzehsr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-f773bb-l4dzehsr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a8edefe069b319c49c117bdf2e0bc5fbca9f9b16","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-f773bb-l4dzehsr.tgz","fileCount":970,"integrity":"sha512-v5RUEkj2bG41le4zDQ38bQEMwcOHFtCULa5BHKbNd+j8tM81tryKGDWb/0AIFrhpgfjS8p6EcE7IbNaDSqxbRg==","signatures":[{"sig":"MEYCIQDSsPtuW7CzvjbcT9zTDljYQArdVjv3JiUwd16i2YFkBgIhANA4Jx7CAnc9xVuDGY6unkWStr8N/cXktOI2gsY1/Y9j","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665402,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqFnbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoIfQ//UJdplhPrBGRGBRwpqhGwd5Ie4ncxRGlkY9uNnUC6h1qy+yMF\r\nkh5xgXCVoVMEadr8zE9IDb8TZ+Lw/31EVHzXqyrF7NU7ktfQljbmJDNFuQIB\r\nJ6mgTX+ygwpOCzOgdW2ZTNQnPmoS9NnpRb3CTXLzoF07AFhzP9ZPHy2eppl6\r\nBvmnbdGwrceo0VgjW0SwKIuJljRJWmczCuuqseJtZpWrKBAj6VMAGgkdAyEW\r\nbnTADWVa75RhQy7EVwrQFDh5yEgf5B2eXgFpcniFVwr1Ch9/rJOO6Xyuv8Vb\r\nW6tqenUE2NO4dJs1p5yL+PGXyGDbcjTUe0KT9aNjhs3wDUxwvEeKLhHpVa/e\r\nzCFM8GSMQCKBPOQMqDgoieeXb7xZOFPTnEfa5yu4oO1Il+/klHsFewKwtw7f\r\nZZEdLTU1hGDf9TfDy5I89Q2jALkrGT4tJCj+VdV7jNtNE37vGsQOi2aqw7VP\r\njZ5QBVS6SqjD98FJaM1gv+2phtSpePs0mEfcfcEFp7r4ET2p+emEwMTiiuEn\r\ntnvHe1TtNG9Zf4iMMcJH0uvIj+6F6R8bZHBJFDUad93qxwWEt27Go0oO74vr\r\nd3WhuqqdOkI48mkY+C1bS99NEFuSlbhFTK3QkAc6rGxdPKIeT/8/jWQ3lm/D\r\nGCd5Mv6Cc8sWOeAfPsapTeU/EedmJUMqLXU=\r\n=uVzb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f773bb32297712812269ba4d9cf09e3adf07942f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-f773bb-l4dzehsr_1655200219271_0.10344414649700129","host":"s3://npm-registry-packages"}},"2.3.2-feature-029c15-l4e27gls":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-029c15-l4e27gls","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-029c15-l4e27gls","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f2e71c2e7ec663e66429b119468df814a4bd96b8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-029c15-l4e27gls.tgz","fileCount":970,"integrity":"sha512-B20JHT0Ih3NVjsAffwy/LUa5U5U80/XAfoAu69tjglQWA0FsB45wq0E3kVyvfUUU/sXpXyQkfsrIr6FDIqSazg==","signatures":[{"sig":"MEUCIBH+UrIX0Ch2xy+SAcOrp+k+/KZiCgq3hW/gQ81xuiuxAiEA8ByBF/o5af75TBuCeLfaWMR/OPmfhElIgDxGASDYECQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqGxUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4UQ//VFBv/vTC5N5En8o7KdYdb9kqChBHY0cVDsAcnW1049EOsVzc\r\nNSnKhRWxnPBTUUGb0EwBHWEfhSPFXlrXDJQCOlI+p/cM0KtRCBhbWcLZm/cm\r\nVW5xNv+YtNHKO65butV6XBAcaeXL0Kq5OcjsjlNJ6zHNHBucgRHZtyCWOnFL\r\nWTpDoacpXA7FSDq4dznZPNaWPzE6C4SNWOYlhLPTFredJdNZvmzMaa5FUhcx\r\nCBH47kANXSR4qLKdzYF/4sTouO0KLzREuICeMTpcqs2TYSZ8yS00RLpvb/QZ\r\n8JYaOF5zl7tQNStOpQ1MZ84FFXb3jXnSguT0M+zeKgh8ZsD7kFqG2rRSKQDP\r\nQWnXOij04vBrlnaVWX3UDAdfgyWprRuKZ3YXtp5JpTDHo136LYC3TSYzsbya\r\nniLXpSbGV4wTrHh6Ag2k10Qnyqjl9ch+UMMmtQpBMNIQIpPIFmZPMRSQ5pVg\r\n6qh08DGHZplm7KXeKfJi5Tx0J5M73usjc8JEjn1m/OK++wxITP4jfq/phKrd\r\npAkb7seV1USeLwpleP9V7/dnqNt2b2fD+3lgxx8B2FMcbZdgDv8y9Uagdba7\r\nELfZ2AAA9AI8XAaDSauGnXjuxRn+Cd0jmAf59AZpYoFFNBr3HvvFvfCLMSke\r\nmbhDzoAmkT9uuHsRApyuW8LLwyVODwUHV5s=\r\n=Ua0j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"029c15c19793a6ae9c743139769eafa5b810bc04","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-029c15-l4e27gls_1655204947738_0.5037024384711795","host":"s3://npm-registry-packages"}},"2.3.2-feature-57f6c3-l4e2ryp8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-57f6c3-l4e2ryp8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-57f6c3-l4e2ryp8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d1bd9f1feddfd12582a026829cdca8fa5988060c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-57f6c3-l4e2ryp8.tgz","fileCount":970,"integrity":"sha512-m9eiPvxoT6i5LdaiW98uG/A7WFSKCg6RdqqZtAQiWkhclpuieL4nfJd4q3s5VkhRuA1LPH49Cnt7AEsTeqTL9w==","signatures":[{"sig":"MEUCIQDwWTxH7T0N0diSEBorLF5kBDGXDka2jfqVAfM+hpvTsgIgBpU2UY7MZuqwDvx1lYetX+Jj5xUjT1535R+Fw01AaeA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqHABACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrItg/6A0mtjIHLIvRYADcY3Ctc4VKkWHJN7G9BiJtpnlpAEFhAjpzx\r\nVrrgawZOy5BxaoRXn7MWfnQH3En8UbDdlMAbxO6u8an1fiYaMSXfiDWMasmu\r\nMmSEVtgjDfP7sbWGe58swF2AnTVfiUeF6bOWP2KVhfJ2SE0y58XcEjZUy7gq\r\n7Oi/glUhG/Ci7AXmwAznwHg42pZ7pN/PDCSkErg0ycuZcrDMiwSx1eb+Cc7Z\r\ndge4NEl+lG75PjwjziMzqF8vZyioZDJukZ/SgEgNVZhghJzQmp9q9MXOMVlo\r\nDjfRaeu+RKFDGHkrWcpJrk8rqvsN0bxvyJ/H1ALPAM1rVvKWSUWZCK8j3ukE\r\nfrKHmZXjw+AHyBr6o2z4xXbF2Q7kUqZUYEQPHP6yVSKHIT6nGAw0gcEQXfW/\r\neyOZJqQRmQygQDwIvI6lE2t9yPluFNAybS83YqUbjUfitwOljVrDSqJin4dG\r\nCjpKC4thVcXZPe2+BWQE4Nqst2/2b2MInBiX3gkExcUZO0Efbnwc9VWEU6sA\r\no99w7JjENJgp6f/FAEMqKiMiBpRetyM3oTf2hoNsOio9iNOc/7pGdRSG1/B1\r\nEKJBvg7RrZNlVqf/g8B5RXd1ivmDQVp8cHyf2OwbOaUEl/qp20Drus0lIDfg\r\nYil4bPFekSimpN+kUeo/6CavdaXbOzTsDM8=\r\n=zq0G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"57f6c3dc21f37a54bc1c7e57327ab432590f006a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-57f6c3-l4e2ryp8_1655205889408_0.9816011464097574","host":"s3://npm-registry-packages"}},"2.3.2-feature-174cbe-l4e2sk78":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-174cbe-l4e2sk78","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-174cbe-l4e2sk78","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b2d84458099112165aa9ea9f7cb35295e3a1919d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-174cbe-l4e2sk78.tgz","fileCount":970,"integrity":"sha512-aB5K90ta0eK4Hxy+Uz8OwYzJ4az4kR0K53GQizIWnEtjDIOWIuIQpMWhHK4b3kB7637jIjgzeszHl8IH8pYE5Q==","signatures":[{"sig":"MEYCIQD5qUG4Uc+MR3iagN9XDlslAn7HMajOqYPreD/LwVcmCAIhAOz1I9kMcNwT1+AYk3m3LPNwL5vOda7j1D4mjmIiFx0J","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1669559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqHAWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYuw//U6vD45p2ma1g5wrM51AlwuCGk2UMqzMO45P1TLFRV1mhh3DH\r\nYZE0XAT0496n34LbAtpNaOdqdDbO3XFr7iVCnjF0cy9xQKd2RaH7FJru7fhC\r\nzHy0hdA8+9fc38eCRvlZVkZ0BoxNnJbPZFDEgtqJxwHCtddxVeYld0rxEUv7\r\nDNHUNDNvzH5jZNqFtoN3Tc4cBDWuLWk4/6t3QvvjAsKlG+1/na0Ncqu1TNi2\r\nv5XS247A6bO+iUi+aT68IWJ4ZRXsZQsBOAfrk8FiXoWaPMkbWXIJ/nNrIw2S\r\nZUMx6c3nULByOlTeEDPe6u7gQr2UTUMW1uE00a8EBDoVR9o6BSHURwyoa3d/\r\nLZ72Tb1BOTethX1FZXH1+8ju8RsYcOEIVFHTuDg2Pw0QnyKaCYtTkIIa3Wii\r\npdQs2qts9YnmR51EJXulacxlEOqXCDChp/jcvBhNtP8Ih2l8BNQyIF5zMDXj\r\n7CMPjwTNZ311hdwbMlFSi1GMFqif0aiQZZReHVFwtkZqOeepffJet3KHej7f\r\nbrjbxMwrn+u2P33uYOUxIWrfmo+nABZONm8Xi6mRaODxM6M161ypZbvzeipx\r\nnH9SCuHM5uuQm6/zKogpRyqMv7Oq1fL+TDFDqDM2KMsWTZp3u8a4mHPbrqVH\r\nk+CvZs2W6FoJr4FFxKkU+FEhXVD8MI3zvOQ=\r\n=I3I8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"174cbe0147d1e8c28e74407534289a3fa8a2f5ca","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-174cbe-l4e2sk78_1655205909704_0.7403118223456244","host":"s3://npm-registry-packages"}},"2.3.2-feature-436165-l4e4ntj9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-436165-l4e4ntj9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-436165-l4e4ntj9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6fc117795bdb006119fb381b67750c17e91af7de","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-436165-l4e4ntj9.tgz","fileCount":970,"integrity":"sha512-QRp0mL7VpyJWyV8lFyjPh24+NycpQ70MTW/hmPIZRSkFrpF7/2Ck606oY3PUUY6PWokTG2tPad5dwG72IRns/A==","signatures":[{"sig":"MEQCICi1K+/vciLMVNxE8pu4iSF2BNgOmDeu1ZVQ4jbMjozeAiAMgO0++kyc7UvrzDaJULU5JDbdkbQ+pUeQWPFOmdFbsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1669575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqHxfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7mhAAhEGpaVK8TrTnXL/zhlBkS5dvqd31gc5Hh/Mf6gRr3ieoLJ2C\r\nmi2dhK65CldSwFT7sZrmctkxOFTGsp1Y8FiP8pBc1oSkSrpG3f1Z5R2Ne0n1\r\n1g+naV1oSeO+CJzjxku2SmRG+hw/031L2w7jDn3rZo+2lHhmzPK4+WOiIzLw\r\n4ckgXn/wEXOMZXXqN0QtpgIWMd3bax6ju78lVE47ylPrraQCa9F7hmW8SkZR\r\nfVOiivnkDL4LRFkJsSZi/nH/PqSMwbkPXc9KwLQY59HK1J69iztSy7zxZHXD\r\nlN8TjAXdjcY3dIgfwPjBvSrCp16tLxAmnQj7cyQukTseE7HpLPvc96d4ggnb\r\n+5ccYdtGEtW8Buy7QtOXYf4CHPCj70a2/g66Hxlks1FJ2NPX6+yopS/sJjXe\r\ngMjB9oDk19tSa1NvYJxC2Gvb607qmhGPZWeJcmfYZVTf/GuIZuS9iqLax6VL\r\nrZRqsFV91M3nn0z0y+KlMpAlSual7TTWYOuwjQeoWjyxuafz4vf/dKZicqfv\r\nwAg9whhm5bWav+lYyCKtE4gz4Ua7dLvfJuW8iaM+wGvlT5S4kE+ABV7B9GF8\r\nZ3ty4iD1EZ6jDLNI7/mv/lg6FphZb4P3pFGmIXnuQspbVYAhA6Fonncqp8md\r\nt/TrpZwfly4Dxrkjt9DNGUDE6U25XY1oxm8=\r\n=fYry\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"436165cceea564a1f1fd4dc970d0e33154d50e4b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-436165-l4e4ntj9_1655209054713_0.6736513200384691","host":"s3://npm-registry-packages"}},"2.3.2-feature-0f78f8-l4e5yo0c":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-0f78f8-l4e5yo0c","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-0f78f8-l4e5yo0c","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8dc3e1a52462a3aa285d834e5b716e8a08e20553","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-0f78f8-l4e5yo0c.tgz","fileCount":970,"integrity":"sha512-a3rbvuJqrEVeFDMIlItTeWRJT6p321Bctzg39YQS2n+mOAheXoCoqlC6qWyYJdKKx6iSYWsJcMKTnZkn/8mY6g==","signatures":[{"sig":"MEYCIQDZSo6qjrgGZnq2RfusnhYh8cCFv2ly8YCSoIbDJpmkMgIhAPrmHDBXXyRaydU3y4rSFZJ2gePTYi4lqKnL0DrA44Re","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1669626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqITrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpOdg/8CDRz3wamN81OtxSmJ8vXDapRD15ZzHtpnoxlwLRFDfj0hnO3\r\nCPnWSjQYFlOrRu57YlSk9m/WaizAu7bguxoFSx1jiVYuq/1PeANA/n+IqhHO\r\nHwZtlHytmdiItE5EV5e21AHO2jpEpGF7IQ8uH08aYTWPJQcBr9Js8YXI72f3\r\nTyB8JIVxHNkZyORO1pnxsEPlUa+mfrGzSFWevWK7pAbQbLKsWqFxvJnHv2nu\r\nvtF8KkJYW8CMmbKzR1LgeY+5+RyYy/2AtrbumMFaaFoGvoLmxqdMK5NhoIdv\r\nar84K6Q209XXLFbfaVnNoUmI6+Gdi0MMxN+lpTJsvPamb+z7poPNMflC8KNT\r\nhN0XykPbGeta0trBGYLhg29+l+u20gzVzqz33JvlVuGAqdSmquRL7D6kPeXi\r\nMeHpu1E6+NIc/0yhAwOVGhSiRG48sTSjD5/3mqcUz7lKJ1ag9yITSQWdKUQC\r\nNzmujbQ4iY3vaoWO3ZO0mtQaoTY+0S0cu7+96+dYYG35lb2psth4XLkgBnO4\r\nX83CdUdsrdL1FPt9snQj//qs3AvbUzlPe6lJZ7V3ByMgXcV4zvdu1Bkv++7H\r\ncf9/p4jufKfKPjJzt5AySQmTBjkQVJOwwq54RQ+W2+iHRjZNjV5Jpxbva0ir\r\n81RYsgmUhVrVBaIcAxaK/8roltSf6PcLXe4=\r\n=wzRG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0f78f888fd9fb411f8618ca0f8c4454cd2f6ad2d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-0f78f8-l4e5yo0c_1655211243440_0.8874065019773214","host":"s3://npm-registry-packages"}},"2.3.2-feature-0e83c4-l4e87ebf":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-0e83c4-l4e87ebf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-0e83c4-l4e87ebf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e9c99e2e4a5e461ef56be775f1be4f5c29831484","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-0e83c4-l4e87ebf.tgz","fileCount":970,"integrity":"sha512-ar79levJ4a/a/9StecboVorso7ep2xf0E4qT5s5u2P9t5Nq2cubahtlbrwznBw4nwB0sFWXegd6dbGY1mX78gQ==","signatures":[{"sig":"MEYCIQDeWqHqfHxrOZvuvO3qmu4eLHNPcfBazmsBGDh2onaJEAIhALxjv18jKokLqOxS13UZBpVJXAKnsnn1Cyns9sxkKLOx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqJOeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrweg/+KG6ud3IRkTcMNrfbWRBxWynTeQtIx0nf8oDAdr4ysUAgGCln\r\nsBXVLHFcRaMZkWmdciVUZ5BbJsHMoApDC/Cukz8I9j8cU3mN/NfHLgR8jFkh\r\npMYlQhoKhA+vgNtd5DtZpLMSI4Me1CzgnADZc1PYLvYWfoRoXKKODRCcuBFh\r\nEvO8jrcJ1b3IeJoDrMb/jf25mr/1xxPBu/AwSZ+MK3hlG4+luK5cfNutBge4\r\nVO+LZI9hpATSIjZoeYbmPGmsw9+UVbA9hST6aXDdG2qrzhwUbdZ0Eauy9S/T\r\nKpSOWbzXGcWrz9XXABFcykhyWbnPGaj8bZLWqGrYrBCWNOoIFWQQdxIdIobb\r\nOpRoD0AH5XeyX493hT0FcZpYTfMquJiilJDHY8Sq5iX4ELyNLmlj/5oRPCpW\r\nTu+JcILst+PPdkthfnsvYRuNR0BWoBUitkz1M6cA5JG8Aum38JQsIdZNqf+V\r\nVUBOtQlxuARKgGzNL4yc/zFnjZ7uTDmlpieEkXJmf9/uIeaVxrHzHAZw2BlT\r\np+gzSoFUtGMXnUAS/Qzo31oEtOKzbIU6B1++V2Qu+s/LQkNmy2lMLJs9pwrR\r\n36xMbIbhNu4p+uAZrSWOet60Qtr/iBJ1WP2imtlVTp+lwFPYxskGYrYXOO7G\r\ndg2fwTe8hZG0WYhGwCOX5WSsTzJAPTUacH0=\r\n=PQ1G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0e83c489ce675947cd742ab46fb382f9637d3c09","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-0e83c4-l4e87ebf_1655215006351_0.9912575881796308","host":"s3://npm-registry-packages"}},"2.3.2-feature-9b1c30-l4e8iyci":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-9b1c30-l4e8iyci","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-9b1c30-l4e8iyci","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"de77901eefbfbdd900b5639f0804b742d61cf8f9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-9b1c30-l4e8iyci.tgz","fileCount":970,"integrity":"sha512-QV8CtwJ0yYFk3qtfLFfbMHD5Oo/IA8eVdtK+XSuhJb6saKxp/Oov5xog6dSumzCceQI+01Dz3W3AsgBNTAtabw==","signatures":[{"sig":"MEUCIG0nCKoWEIUY6gaKR05Lx/cn6h3phZECr7HbHW4roybvAiEAvtkwsBNEQDbKPTlHRMrwRQ45gaVdFjGEnqKuzGNeXWo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqJW1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2gg//TihUS8EUmoBTz+0qJt7DlG7bIGqDNJXaF9eTN012pNkh4POk\r\nGUxvGPU2CCmZBI8KarEVNFjg+pThskz/KfRpmOhxuHbvPKMf1HIRtF2/+eMU\r\nhVTQJDjH5/joJhbpNNsClKrz6YuZobS7YziXsExeVw0LQ3dRzU6z+WhZOT1V\r\nbaX7fKPtSE9KqwUcoIQopLtuqUUvaca/nfdoKqBMYB8y5dkxDQlUmxLWvXaz\r\n7WKFfKami5B7q5se7+hrmE1JFFTxWlf5uavfwRVfU5vOTIFfC0eAcXDFZkfF\r\n/QRS0Yk5J71AuCFUuNIuw1RB+F4khTnhHRn3/dFE8NIrEHaNCnvdU3cBR5Gg\r\nnjgTwh9Oxw3bvxkloXHM4WTeCgU6QcS5B2MPwe0ImYyHocc604g9ClsqhW9i\r\nob/SleCkpexUqtbAbV/14Y9kQ5+Dz+FHZ8CdmSjJquAQZEWqs6dgcd+nX/EC\r\nAzFvioyP4w3KuI1YrcI/CcNoV0wymGqwhFJBdzMcYUUK6jVIbe5OouVol3b5\r\nk73cfy03GDHcxnwjEmQTyKdR3cMl7Bcr2bddjlBMXUsawvP+UT2jxkEcnqH2\r\nthxRM1+P8Kh1z/4VlLpJ1gyKqfCLR/4VsgRDa1o1LmHBkpBoqAGEhiNSnmE7\r\nKhUGyNhmMihIkbBCl/r6+jBICIuYtOBqlq4=\r\n=0/Eh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9b1c3062d7e95cc9e9a023c5b94653ed89af4cb9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-9b1c30-l4e8iyci_1655215541008_0.6814287857910035","host":"s3://npm-registry-packages"}},"2.3.2-feature-8a7c31-l4e9lz4l":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-8a7c31-l4e9lz4l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-8a7c31-l4e9lz4l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7c7b93cd9f9b2c5d74c91b99008bd6538acafdce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-8a7c31-l4e9lz4l.tgz","fileCount":970,"integrity":"sha512-AoT0mO++uGu07+D2yzkQVX62gw7ND2ybeDwXzCAX4XuNSOe5ZfrjbGe76xDK1Q9jd9D8Hozs+QgdJzkzx5UepA==","signatures":[{"sig":"MEQCICNRpw274nLIJKjkNEYTAIBvfMh64y6D/g3HC/Ig3u9/AiBL/tG7bP+Lav2U6uIUBy4vIvmcm95ViABR1GfQ7p0AEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1669628,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqJzQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGlw/+KCcXc4LP8gPdd1TQeW3kLIr7zg6ncdbAdsJwVqntsViYe3YI\r\nnJP3ccU12oPBasCH+2NDFydv1q0FcDA1BaWbv7sk9Iv5M3gDXvMeq8yIdAxp\r\nrRGU1/xCa3+j4/NTn12Jp3q2yDV0FjLvvlII05SzPB6m3ktLp0Q6pKgkO6N2\r\nWsLpJ4gTH8WzSvs2FoOYSPqG43rmmduho4MrEUlnuAqH/Q+r5N4zWG149hS9\r\n3+heD/O1xo0uOrRjvB1HaRaNsNJ2O7C15dK/w5JLad7GAGpCatPb5A/KxjQ5\r\nVUWluUnytFNpuYMwd28ZKCP2kxPH6gsUS9scpy/uvhBPMjgE5IAmYFXoYhY6\r\n+TNa9bv4xkI5P5zQ2e9PzQyoVubDwLTx0YHHAUGE8zxth3t9EDFlsSqVyJN5\r\nPSlCovrYitsxjVlHihuw4m+gtrBC9zBx1tqmud2zxKBItXcgX2vYY7+P+ssz\r\n4xjo9SLOTbtFZJqVqSyvB1z9jueZHmktMBhuIT90oZaHGLSN49VQRtMf8Xmb\r\nc66UFNKm7ww02iJkLplEDvId1UlK0XD05I+al8QRz++t4Nugw1W+bUZbOB+C\r\n6cWxFO6Fs7MU+342yI58L1hC/8/mRzogDphkRbHK1bwyzmyT0wu33zyIT95i\r\n1l/CMqVUPgLFxyTVekfM/Yh6bfWA5vtVMzU=\r\n=Kd6Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8a7c315ecbb915af3c009e4892c163760369f436","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-8a7c31-l4e9lz4l_1655217359925_0.7061342837847848","host":"s3://npm-registry-packages"}},"2.3.2-feature-428c48-l4fcrz7z":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.2-feature-428c48-l4fcrz7z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.2-feature-428c48-l4fcrz7z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6b54ff2687ddab417f403d0e45eb7a53bce6faee","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.2-feature-428c48-l4fcrz7z.tgz","fileCount":970,"integrity":"sha512-OF4OE0coeBbbcJ3QLNv4R4LIHCCsqOufH8yL+A1g3L1XvlGyE8+4EJsPhlZ+kypKdgpPRcyPcdLxNj8Esw6jQQ==","signatures":[{"sig":"MEMCIGwzTtz6nBDHvLmhGRGI9eb2y7hhNx63Ztc+iAJgRJyAAh8uCZMpppyAE4Q/jHZEIZWua7HBfju+ai/DtNOKDwUO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1669629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqZ34ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrPA//RH4pqMC/iEBybnMJZj1C3KSaCr5QDwoTMBfEUB/Iro3k0wxm\r\nv04luDRSI+OblAm+hOlmj72GraRMVYJ0AQBLG2X97Z/bMwccsp34nt2t/zit\r\nmPmF25uvs4GReBYSqLc3qFFDrSSPE/+KTWULAH3U7LI7KB67TA6SjwNY7F89\r\n202wE/jVCrp/PIwCDAPtUY68BBxyu6Q0ohbKiB+pINc4z3afHLRJCWO72QM9\r\n/BCz+cXLj0bM3v6Mj0YUxJJjsib8p6lis6jr/LKWrjTR1SSz4AVMiuwtjZmn\r\nMdl7VkgljKyiTsnjk9IIuNyWtCXLiOhWC9xUNgDLiQbPbYAv0+wDLFF/hKrn\r\noy3axFoSJM76MlBKsSVss0tkH5BFLhuJC5xvZQJ1Qfu6EnFQTRdVUU1AJYhX\r\n6E0iZWocb904UHcL9AylHxbnbVzhjVCIKXry5ogK1qbhq025Ych5QPlx0kjF\r\n5nMzuTNrb6jlOVG46aIh+g8sjqvkNXUblXtOYoRQXWa68/j2wqzipDjL11ry\r\nsqCzMnBfceVruO2U6lGZm43CB33ySwVwJe0yY5v6c4nsEslLMTnsSJDgPL50\r\n6WS8xaA0p+hD9EMA4MuRdX7q1wGunf8z8O/XLU5+98n482YHmh+ijk49rQVa\r\n2iEl0U4MybuZc8B/kbRJGFxeWSByaKvxPrc=\r\n=zCEE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"428c481938e0abf3a74d08172bc556d953f8e2fd","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.2-feature-428c48-l4fcrz7z_1655283192338_0.39866146796006685","host":"s3://npm-registry-packages"}},"2.3.3-feature-33b1ae-l4fhi731":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-33b1ae-l4fhi731","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-33b1ae-l4fhi731","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"045637c47894117050e8cd505ef7d1ba0ddeafda","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-33b1ae-l4fhi731.tgz","fileCount":970,"integrity":"sha512-cr5s0VD4OyKEywSQ+lm3IiFPYzag3CBiek4EhhvLoGGXX09a7yDa3Rr298v9nkEqMFBb1y2zusl9dVrEpRdWZQ==","signatures":[{"sig":"MEUCIQCkDmZef/4qYk4DWKHtlxH+n0d881DWU/V7pLdytyR6GQIgGuwP+JARlqHAbl0kglZ8kNV5m7W2x+058MR7fjIBBs4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqbzRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqBhA//dcbRPEbCZXfx6B9ChswBLI+IjtNE3ahEcEXwcK9HKSnknftK\r\nmIYWa+akVWes7VsUYA2u1Qo16RjtHcqA7NtotUo0po6NJaH8FBseeDPadP6f\r\nkrUPP4UDs0K+LyxU8F12ssHuZoeFeg5Zlnu1diUmpF/g67P0LfVF2iCm5HO0\r\nXU02RDvA+yDjQbtIFEVaYDxQDbcGkJBk10My/+Aenm5EQ1TQDN5VdDlPF7W6\r\nW/I9Ly+7yPRVCC57f9Kw1rsvYhxeHUElq7yAy3bQWb0P0flXOjc4/aFdQd50\r\n8SBMnsuSlhSYInYTedhx+A1Id53qGV1H6WzFDwejJoSy+q/fA7pYpW07BEPg\r\n/MHKPC/Agl47Rikgdtk0BF4bRQ8JlBkQpVE8b8c7xAEWEhvIgyv15vZVPITe\r\nKvas2JYVb5JRUxzBQrrnOy4Y3pIjbsIjwcL8AlrwoVdPJqksqwh6vzrDAvwE\r\nRzr7lS6zulzDFx5Cj31vgy+fDKuh+nC9vlnzkd1panyHTSCBCELRhyWLrhcJ\r\n3fMyilTE+miAFoIuKGRwo3K+1SmnorUmtPJUqzevm1bP/adQOUKjx7kNEG/L\r\nL8cnKMYjMmPCq7uyiE9s6iIbL6Ot8V/o8PgqNL4wTAIH5uTkpDeUIL66Gu3O\r\nwblr36g/3xasDYEroVkSA1LAwbLONOGzatU=\r\n=Mjik\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"33b1ae9e94c3873fb67457331e25580ffdf50c3e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-33b1ae-l4fhi731_1655291089344_0.9854822589915861","host":"s3://npm-registry-packages"}},"2.3.3-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"809dd5a1442ec953753d3aa6784bb0e82a1206de","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-alpha.1.tgz","fileCount":970,"integrity":"sha512-9TfNpQU4wYvK5HS/bbze1crS4MTh/gGI9idqdndQUL05iVxJqL77BTUXKr1keO9DPIht6C16X06uBYi98KSXYg==","signatures":[{"sig":"MEUCIH7bYL7QYHmRWtmAb+CO4A8O7gKZODyArFVssre1ei1iAiEAjVRvxifTf9ZJukv3tng75Af4zM+1OYwOACFVRtA9gh4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665571,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqcGsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqK4Q//Y8vtggWd3DrNBCFz9EqJ5Z7Uu13zsR7Sq55b2VcRKQtG0er9\r\njIxOAGxt/olW+QLT7a9IuzIetqlrlYkydOklRKeJpiVnrKckp90nrpLN/Se2\r\nMUZHlPTmEEAR+mj2jPd5h1LLQDIdMCinfYuaRCMAePidDg1R9zZJArZ1M4Fz\r\nmVvX1jmcHTNr+sB6C91lMk4ZADFvtsPhpYHYECCEmkZojK7pwkSDZ+zYbbi+\r\nfe7DXYd8R4DT5HunxShA2kuXpfMqXsYEIc0cfHYa3Iv4qmTHUzUgykqhX4N0\r\noWEIMhwVE5mwJy8J0aYxPwdrNb6f8sUX0bNUAYSrKHewuscUSEwkpJuaeDBZ\r\nq0wEaMwhRS6n4nNNWXj6N1OMKG1lvkwwF6xCv7Je4vCPIxLrK/DRVwmBCvzB\r\npryxzImZiHPmAUroS/B1V/MM+RR/WR+lNP8zi/nyTj5dj0H/FbMQG2yyRZs6\r\n4G13JC5fQz4Qxl1BfPljtDMq/hu1ZCJU+Bz6xOUi128M9k7U4FOkCBCSJ7e+\r\nnWw3+BYXdaNLcBVD/KHjzKYbVg0RkFpdp1RXVfO2SNcxBmhcpv/rTDM/bM+n\r\nOrN+THpumrGIEBGb8wJNMw6kZvd51i4qIuzQ9TLEqTOFKiK4YdmHkQEu3Mvn\r\nZOAluhhe9aQ+WShtO/MTfAg3tc1A0z2N+jQ=\r\n=sMrz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d6ac04ec1519debc6438c6005cc6afb834c30b04","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-alpha.1_1655292332558_0.5140345750894995","host":"s3://npm-registry-packages"}},"2.3.3-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3c660991a883874d4ced259cbc203cdcad899aa3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-beta.1.tgz","fileCount":970,"integrity":"sha512-19AgLC4GvjZvRatEsxaDqyGATHgLo6BKnx5R5NxOBHxQgRkFCF4p0y3lMp56Odpcvoy20nYT/aA6qNnP0fT0PQ==","signatures":[{"sig":"MEQCIG1diSgcNNWse8H0JszOVdxw9FHMH18SLreTqET5BAQ5AiABvMAxpCcejhRT95bFkiiREF3yvc3Ps73hMK3fct1/+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqcHnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoiHRAAl0YLTAeR/f40Oay7yoW+Z60+GV2dhEkG6Ph6KhBBjkPU0jqg\r\nfw0+oVLqqflhpRnokn+2eW+czdr/NHMxMx7QBa6/izdPqOk4XxVcZY5Budy0\r\n1RO6RP6dexCIn88OxD+yqMfkUfk4bGXXXPhMjVPmvcyzlpCr+QKV3I3qR4XG\r\noI9bPUgnndyaRT92671vmaTEdomyMUi0Fz+6I+W6ClWHnWwd2RlNC9wd4J0p\r\nLP+VxbDSsHc/SXS9kUGe5zN52wh/KHHCbPbim0h3kQTlYbKkwwC1JcwC/TfP\r\nCVGtW3GoOUe3dvTkRRIFCvzVNmDrXGmSjYZdWiFK34fFKaxsexyw1+3hs4ix\r\nhlsCwXdkNZtsNx8zA7UmqfAdYWk4GTjDwwk6KNaalkeXOh71I+8IWYCYtPbw\r\nuEhtVAPeBpQPv84mpp4DrH31TiZNkjwEqlhSVuFDmtzZeIhndwaVBFOmBkhz\r\nOKpfda3H1v5cAIgw5AvHqwEv5fOniOdfx9180CF297QL83wrc2dgF4IsJO8d\r\nwu2K4K1g+PtSu8aZBt50b7y5fBpEzgbeJQ54ftnM8bOtvFVN8IEFS5hwnFZx\r\niLFYBG7uiC9nasVfLcAHRAXLL1UY2f2VQ19QPuJs6nunn4oUOeqOYUtg9SOY\r\nlBYoSTmFdwkOasa+W2njIIOaujbCQ2fyXUs=\r\n=bwg/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"54684fecf07e646234c97abdec3752ebcdd77257","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-beta.1_1655292391636_0.10466191766059163","host":"s3://npm-registry-packages"}},"2.3.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ed109b9457354e085a655676f884e05036d1030","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3.tgz","fileCount":970,"integrity":"sha512-swGgu07eQuWDCBRE6pfhtLSE599KIupH917BUTG/G07N3bmUvkuOD4GGxlaDYumd+wkRC8r/iOz0q4Wh8DCOCA==","signatures":[{"sig":"MEQCIDyDgY/GudieDsTA/jOg+lzB+zJtNGrCcSFRXFQCVxcCAiAgsqt0jxvu/eTmAT0tfya/iQ7S36142v7lR8rfBhznOA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1665563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqcHrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruRQ//fPYYzjMsXhIy3aJtew4D0m5RqLHgUaYfghsLRsRYYuzyFuYg\r\n9my+MqajWUICqQcUft6+n5uhfe2Msp0VJA1Ks0uHAUX+6qX/n0vkfVdzBD8O\r\nbntk4opw3fFbGCk7FE0iOEhJ38/ZlcT6AGQy57xn4jlFvlY1Xe5K5ozEtb96\r\n13UJvDy30/5rW/5Kwh7k+JUqXb5XFJf/FT7S4sQhAGfcO5GhbrIVPFOHiuo/\r\nGUylglzrWsL+aS9Pt3/AvouGCx+/aoAlBxWIb92/XSKt94mxWSwHeOeYLEbs\r\nbGK9bUrQJeRWvgHW89rbnXnWnfuvu5MfMxTUUEKw25LMRpgbk6AD/VTpQ7tF\r\nGxSCEhvuQIeUHjqgu04onyv8qL98gwcT+VdalZlu+huRp6M7wDF3b0sNPi05\r\nj08T0aB91c9BEnJBaxhu4Qftk0H1yWqN3+g7LgNfFwLcBlrgdkFX19M9R26X\r\n1oPRppA1cVPK7YKpXiNDdpx4zHPCTw3PY6mq/Xj5R1UvFgRC7Y835YVa30dn\r\ne0iwytNEwrInosQOHkgNcvHyKxizAecwhgIItH4kHbAfIMN6WdQCg/EWPfKB\r\n6v5CDeMHYzkuK1uBcNKuBOBBIHEKiCluMow7PiNFyyXvyvP2vA3eXfMyvHXS\r\njbtKQ7roqJ7/EU550tVwX8YfiX9EGAirGJE=\r\n=ZGij\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"7078744616199c0724419ac8ac09c818337ad0e1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3_1655292394905_0.661476056179312","host":"s3://npm-registry-packages"}},"2.3.3-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d9b02729def6f2b10695e31c55ff8c2977a0d09","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-alpha.2.tgz","fileCount":970,"integrity":"sha512-m6cbz4FwDJ4IwSFLCn/j71ifeZus9CuKSzgkJECvsqKVi2aiuQNx4YrI74FfnhiMAp38DOy2D1Q3QpJ3iID0+g==","signatures":[{"sig":"MEYCIQDlQ/6EfKbsbI1JyYa+W/uK+Cmr5pD+8wXmJEvfdLCiEAIhAPEh4/T4BmuIEpuE/vOGR+6jJHsJzCyo4eOYDsiWE8F0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqcRzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEbw/+L+SFrBQD4ye9HCX/JD1QiHK1rGvIod8FK8+tFAY7Rh1R4Zim\r\n/UMJ2eE0UZIFgqaW737DVvjSbIJe6216Qx9EvrHtT/uz/LQArJtsP0zScm2F\r\nPmGU1aOINSDOOOoZ/FMEf28eifU38jiZsfNyUL/mpB0EHQqB8EfZFHD6ogpI\r\nuN/NkljGxBZELyLBWjh99aj+NTIzTyyU9/pPtVHT3Z/6gx3zykmATU6FPjbm\r\nboW+zsSn4TPC6S/PMdFO+qJaMrekgK5GRQ+5GXfWR2uHdxMxUcTCd+wgsc61\r\n8tD1D8OSuFENJcs3Wh39QhuBPmI4PhSJOZiQHzahz+ehougGZq+lLNTBwINZ\r\nWu+ACK5j6k5ycjZRLWkpWqe2yu3gr7M2gA8C5q6FkTb6Ta1hlbpIahqQkxQj\r\nHrysnLtCubRWugQXGElkBXk5puCsZvhXL/eJsgWH5Jn6DxDilEZnBi//L4oU\r\nICJGTOXfGVfouNFH33+m50nowJ0ZHZx1GjWiecVAZ8YlfQeFvo6AP++T3hr9\r\n3VxwaT/1ng3q5IerbAjY/Z14+69aKLLl6uMW3bmzVyBaGKfCa1bDbPTCDv0x\r\nz6PgmPKNzf9ZmD1eVPgeVtzgCPzVzcvl3PtrsXlvhW5/1Ibq8TdvOeZIKy5Q\r\n+aq/bRxhJaRa3XYtTacOhQ8QBKhs6QNlQO0=\r\n=270w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9782fffbb6f569b79d6fa7d017d5023df66c6dd7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-alpha.2_1655293042769_0.930698014487207","host":"s3://npm-registry-packages"}},"2.3.3-feature-f263da-l4i7b3ja":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-f263da-l4i7b3ja","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-f263da-l4i7b3ja","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0cbf209c053990211a63a7842cf91102c05c264","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-f263da-l4i7b3ja.tgz","fileCount":970,"integrity":"sha512-Yu/WB684CWClsZagNr6FEH/fvzABIl8f3aY8/ZBZl0f9Pp1aIkkqGaCc6epHZ3tTAW3t6TG70ZFng/3VNHX8vg==","signatures":[{"sig":"MEUCIG3dm9lyMk3SGVXCK/2VTyR+ij1fo+82N5+WmXPFXYemAiEAiNA/k8t6eEWO/igDKrCAVMmpawvfITxl+ANBi6+ABks=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirD50ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6lBAAjxchKt7HpIfTg5pQB0d9HoXjuWw0+r0CB7PAT5xo2S1nK3Az\r\nu/5UIu/Q9cx7r4Fd6J6ClFe081eSyQ/KcK2/OkaYHB4uWk79GU8hUSMkTktl\r\n8p+3s6CqGZAAiPvFjwHDr3QDzI/nawB6oHwKplFTMkH4JiiWQhxOoVlwlFSO\r\nCMxLr9navUPu3r9wuDmSy49HM0HldjkC3SRrfHIXN20UX3xMa1HkstH3Ny4k\r\nAsvWuhnzLy9M5bEVaiWbdtLUBtTEiW8n7cMj+GV2u3ubBu46J+ljpj5yQkBV\r\nM4Ike+FO40QiPO7iUGTmjCS12ZtEg/f/gzDdzdP4R8F+7UrBPgNkWoDz5cEY\r\n4TaTHmomkCSmAB+GnLfiwoFSjv+sgtn6G3cnJPPf3YG+ofDOuc3dg+WCJ2C5\r\n4TGPaPlYC6H7LVeuYt42y40sIs1IrRNKHMDPcMQecqoa+AG1f3kjCgGb5szp\r\nAWJLIp3wJuiUSNsX6hJZ/wEXoxDBYGV0z+ACsvmapfRGw+YsnSe8ybLg+kfL\r\nRNPt9GxQw7gWlcQRUkqZN4Y9Vq7Xf9AwIsE3AzXETNqHm1aca+EdFFq5Cm0b\r\nacvlXwqFEd/daaxpRyugk93eUim2mbdVt7bBe/vmED2G7W/MU7/uSctxHaTM\r\nGtabIjLBgiQo0LkPBSifn1nbgnEtvdyGkQQ=\r\n=pTgQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f263dae16442113492f99b8691cdfcb3b67d3f4a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-f263da-l4i7b3ja_1655455348654_0.2187768486683066","host":"s3://npm-registry-packages"}},"2.3.3-feature-58d0e4-l4i90xak":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-58d0e4-l4i90xak","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-58d0e4-l4i90xak","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9b012e0ddf1c4551c499f2c829aec055de0211e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-58d0e4-l4i90xak.tgz","fileCount":970,"integrity":"sha512-L4yn0Y45zlD/W4F8eV0HubYbCENFqQLFEbHfTxeOrrfgkNgNxNaHMCSOsgFWhr00hNV7jCJ1YIkPyg5CPuBPMw==","signatures":[{"sig":"MEQCICnQSPUfS1/2IqywNDaKVc7tBVJ440A1EdG5RczZX3axAiB9qRzpmIpChxmD0J8UqlW8703jgV50kMYw011h+aZNKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirEnZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/kw//d6L3RJ7KcBWXD9nTJAhhBd4Tzg88dBrk0H6f1QsvDKojr8WC\r\nmfTymBctydpgXI9juUOimBidamfXVcVabn1+XLYXwkKKosT9Bx8pgTTZDrjH\r\nnnyWXK7Ob/En3LItMwAXZhzogY9eSjG+7J4v6L/DgnuPuR6/Rd0iSXVHliMJ\r\npyHM3+Yrs5/ZUd0laNLqbZNv1vEECGX6THQle549R3/icMFcJCHPQqmyXd3A\r\n6LCOZxp/3tEPvRQXEgxIX1s4ge4hWWl94zlBdFC4TVCfyJLEUcBq9dP5a8Vq\r\nGP429obEWc+G4jy1E6b3uJ1+GT1NnE4iJ6scqqMOreG5d9VsBJCRu8R9P4Ev\r\nHiOL0fbDbN3XXq0iXK3jz+HqBwi3wjABpX8hQFnxHqoPGZ6jNDI+aV+JuSrT\r\nLlueYGIF+I+6TkdrMbMOScIwv1H4NdvkzoSgGkUMzuvR6RDqJ9Pyv5ZGNNlK\r\nwGVTDWAS4kVD51OZCX6H4Gyp6to4WEWYtm5hH+01JJ7/j2KFDhm7ESOOQG3b\r\nvfbsotMO3uUyZdXT0RNlB64H/UKqhROz19xqnEiuT91lKx/6NT5XPrgSHRgP\r\nA+uKay5jI4b5RoyVR3Y9LnI4HlvGpx9JipWHDYlJry4x6RHZlCgvCIMKxz+C\r\njq44OTJ2WETKH6TZxR53H6OjGT/P6JVelk8=\r\n=k+mc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"58d0e4d2714fc4c50a27b05595b7a540325a7633","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-58d0e4-l4i90xak_1655458265199_0.15991620282121333","host":"s3://npm-registry-packages"}},"2.3.3-feature-d2bda2-l4i9902b":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-d2bda2-l4i9902b","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-d2bda2-l4i9902b","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d068656ff3bbb70681ba7be6c4eb78d2b793f00a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-d2bda2-l4i9902b.tgz","fileCount":970,"integrity":"sha512-Ua7onpiF6R71rrdSVn3vCP3v1xatAEjjhN2SdPalw6fIxwxA0ttSaZGlVt//6sjEtsG+5RhxaVHB0VV2ltIiOg==","signatures":[{"sig":"MEUCIQCfA2VL3vyCXiXrUniSHqtK7YoolnU23z+wrYsEl/LbZwIgOu3KMf+lPn9NvQD6B1FpdHz2TQMtHaIM3n3EwO79DfY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643294,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirEs0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0ohAAlqaTVDqJdvy8cjmaTIqDn7m1j/kUrpYMvNpR5MVUrVQxulBH\r\n+c4Oy/RXT02cIvZzit7M1y+tAL7e9J44ml8iZZ/fU39epBRi+UtGAVZyPDm/\r\nNktp7rbE2HYmDsBNjwPj9boPXCgeEh09q+lHzLxfONXEifqz9QO11ebreNEs\r\nkNHnc90poVhzaZg+/0UiCs33He8fDTYq82o3X/lUCR497ziATMViQZp6VpFs\r\nH6hqO2ilu5Oh0F4HcsSAyk+Oa9ZYM0uaummgs0jsUFtVEuIA2sfe/XRCim2L\r\nATnRbijehdqGi+Z/TDyvjpXVUXCLPaQY/qyGQw4BVbcwtUyU/uA7xw/vRwKl\r\nlXL3FG/4JPS/6FfUN+mk39peTJLjkC1/CEp8KBpz73pQoJH9bW+kAk5ourtt\r\n+Lte0F72CdIUFKg6+FOenwj2OBJlCQ5EQUnBW0QdYSZteowSJ8XZ0goF246u\r\ntzir1g+wO2XtLet8ykzcm+ffNDcFm/38EVvsP91BQzMfjffG5IkxbbgbsiMP\r\nYZTXAqbcyrJZFyIMO3nasSPfNz3tuP/2wff5xY5lBIJNS93/NcelsWl/yXzb\r\njwVJYLtBomAxTQgqdxveNHm7lVU2CjsTqFV0rfLdGDq9GMToYdlnnwTw0XOR\r\n18+UZE7Z1pUq2xdjsCZE8df0E//CdblyGgY=\r\n=zxwU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d2bda27d64ff067a7eb0e135b7a91e13d0f5991d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-d2bda2-l4i9902b_1655458612189_0.06728494625830983","host":"s3://npm-registry-packages"}},"2.3.3-feature-024e74-l4ia0kha":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-024e74-l4ia0kha","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-024e74-l4ia0kha","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0ade9051ed08a44ad5dc86363e5ca9ce674bbfbc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-024e74-l4ia0kha.tgz","fileCount":970,"integrity":"sha512-FEQphZovrpZ9OFwfoq2UXB2adcEvy9bDdgjwmOUDd/wZG2sA8bWonBUI1lwRMZWQt06BPYeO9KHZKpbgYGi/Hw==","signatures":[{"sig":"MEUCIQCG9YfIJL03R3GUfwoLJ0XWlFXW2ZfK2h6QDIG5jpAnIgIgNEbcx55lF8+9DyCnlzd+kYJwEyFLBf8HT3lSyyA0qeQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirFA+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOZRAAmaJtNNDiFybvc/tJD4/RAwvAxlr5iOz00KBDIvxmjG2dhMDE\r\nPEsVSi7yxHJVjVtOMfGAHxMNsZZ33tFU44iTZAlNkq1TfJLi2Dy0zvJSaWZT\r\nhldP7z2vgWXQr/AbPiIIVu/p+IBYSt1G5Spdbya5zk/50F7afgSkItLcogFs\r\nTKgp/aPe2gVxARHek1G/fqjWaY5CT+Y3jm0HT2YETs/5QPfwBiVxXwcu1R41\r\njRYgToA3PsGHI1ewcoZn/m2U6gT0Pkfe8yyOAvNkXZJitCC1YJ5iivKj1H28\r\nHko7t9LZ3lP/7VQReeC+K6LDyWVfQLJtV9jA8K16aRMddGsc/vE4nRHtlpTP\r\nwdXNPt/Qbw+lbwCUczd3qjuG9JwnYnQyzbpu+oENzz4MeE/Qox0WyH8Dlyao\r\nz8we9EImzZ0hbqQV9xJchtSeDh4rwoyP/70Y9+yticBBTLnrOsM2o4r++8Bx\r\nn/dtHLqSptSDeJWn+rEMuBjLlqyG/aUXmGeeLUvsAyp/xVavJvVqSDEbf18P\r\n3TYlufWKeZTn1CF1OuL6FjPdc2xUKCRdmBQyw9Vo7/9QS+en4YETQgN+iGUH\r\nCZRXvrbroZItx6dno0abOw8B3eWWAIjrtfEikA4OQd4PXznZpFwfxycbcrEl\r\nRBEzDD615BiGrOreMXW00n9v6ysVpg1rMsY=\r\n=VBMq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"024e74df56c5ab9bfb930269e2a9150e6b9e713c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-024e74-l4ia0kha_1655459902479_0.6452916485588698","host":"s3://npm-registry-packages"}},"2.3.3-feature-c86996-l4ia3n08":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-c86996-l4ia3n08","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-c86996-l4ia3n08","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"82fd418b30b85d5b7929b6d9328f244213b443bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-c86996-l4ia3n08.tgz","fileCount":970,"integrity":"sha512-tU9Exml1TrFGxFXu9jeW5jJAdQ+mfsfEHInL31rHxq2yNWNVP4IgrMxCh9BPWk+UWvhnoNDQ3aPDnynrd7Zftg==","signatures":[{"sig":"MEYCIQCoANcBnwN8RP8UXiZnqqzIQr+OSL+zRFbhPdnJFEH43QIhAK5RHRgd97K4uuoFiS4FR8QXBR0Vqg9C3tOS63bg2PDR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirFDGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrj7g/+PLNerNtFbeMgWn6lMVQp4EUgk7wpnxYZHkj5Iufs/Aq+Z9dQ\r\n1jhlbef1leS1cHtuLPNIyAf+3N85ubPggeiyZ3zff0aeuGXtbzLLRDbpwtM/\r\nx5WidLl6BQg7GMm7EpfqdUZ1CHXf9brR8E8AVXzkhLnRazmJt1MeCyhf93C2\r\nI1wf5LZFhCKIF0iCL8Qlg2mUyyN2ku9lGcc3HMcb8iRUuAhHkogq1nux64tP\r\nxEsfowZ1xptWl35wtGcpmYa2cFIIrEXseF7gWLhuHMFwUgdFhsDeWIs0kovP\r\nFncbc/D6TPRkYqkvWYH0W0fx5YhGObzm6G8eNZnQPn7C+gkxViqBSVz7WaOv\r\nR2j47sledH92ddXcKv1APSQqBi+uCzwmu/zPxcVhqN+O3h+HW8pqEcUcd9A5\r\ntdyevF5irCx4LNVHKTCa/qlwZTf7+JTHrx08s/v9NMfAfSMYDBKoHMKXYS8J\r\nLRfFOCXfn7lYa/Q/oyrbHlCRo5LtkQqy0xiTTLyv620YZJ82+fn28eDmCMlV\r\nzGAw43H+H/KRF98XO2LEzhb1l7TAucUKULVyzhrypz26sQUEnoRMuuY14+7b\r\nyi+pCe2P/ngFp8eedcErNXqD0r+s6rVAUYwVtlJcs064xB2OsTme/L2oIjPC\r\n56qgKnUqAIm33NtjJt0X2CFoTt3enhE6eT4=\r\n=PSVX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c869964862a21d78ac59a420a3eb0849ac0d6782","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-c86996-l4ia3n08_1655460037883_0.6918131007513779","host":"s3://npm-registry-packages"}},"2.3.3-feature-c623c6-l4ia4ogz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-c623c6-l4ia4ogz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-c623c6-l4ia4ogz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ddc0d9258591d7018757d04d224dbd1d7a11694a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-c623c6-l4ia4ogz.tgz","fileCount":970,"integrity":"sha512-1TZT+04+/Qr49U3rvK4K0OpAuBKjQ7eW0dcWTCcJypxArBy/xw7PmMP1Q4fr174EqXZRdr0Ofvs0NbUFxoU9Yw==","signatures":[{"sig":"MEUCIQDtDcplGJTKjVVjkvgoyobSht48L6YyMQShcgFDCOpbYgIgToc7qFA3J6Ky61zB3l9w4kCXpVFEYi7fIB36BRK5My4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirFEZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOEQ//a64hqQoeED1O0o54vDoS7/tIsNO1moNb0tiamdmy0sMctdFw\r\ntRggZDWEd7UtyhNX+QGdWUZrJr6dtl7EtQlDR6ksA0uIgoOsi0xn1hX2aLgK\r\nixrcHA/yNnsqVE3szq9zG+FlFNgHlA39Y1TJp1dxVFn5mjucUSI093t4vicq\r\nhkcAyleLNvJytPwR/CU/ATYPVIfq00odu3qsXBV8uafgnnd20GGDl1sSRqC9\r\nVOPrPPs9BGRYPQ8elrzK7Ky86OKutBv+uqWoQCCQyQX6n0De1TnaDhTtDRhZ\r\nEVJZcW9j0QNFuPjts6/cuzWzTCpYF79U+DF2vcyf2t9dwQuVuu6Vjs/yVlB9\r\nKGRxDizV82sT+FijFTAM45d8Ieif2ubkYBm94ZyYxtY5szDTJ9hnIOjmSi+N\r\n9zPFFKCcDacQk98TU+/tl8INzejGVZU+VABCb6DhM/oy21GAEdRDjcgbPbzd\r\nNw5+HeKy3KL6CPXhmzjirVrdoNgjYK7TDAtrt3xqJOqzWqNJZkwrjBmHm1VS\r\ntnOueouD+WEIQRFh4FzRRc6OlshiPqpfFXs/ZyLmMpb++4LaxF/Bj8uUyzXM\r\nTOGPbwYBLPDsfTTp4uzkfXlRLQwTjg4lyJHn+gK5KivQBkT++pAKMAZwY7yu\r\nmHqUpFvr9xg01RlAOwR5ZZIT99cjFZ6rVhk=\r\n=KFpS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c623c6ca5edd51a02d2c57eba192fa91dd906642","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-c623c6-l4ia4ogz_1655460120820_0.7184548346062649","host":"s3://npm-registry-packages"}},"2.3.3-feature-76096a-l4ic7bsn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-76096a-l4ic7bsn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-76096a-l4ic7bsn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9630fc04cf6f01d60884c7ff824d81951a907900","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-76096a-l4ic7bsn.tgz","fileCount":970,"integrity":"sha512-AXTVzFefw9wvKKx3Fix7o4K9TW0Zd60FFixtZGdKKr6LiDuQHcxW+hLCnvq/pfHL6M3GfenlQkFrqyQiOjdUCQ==","signatures":[{"sig":"MEQCIAV4SsUilwvW/I0FztykRFzSkRKs/4eChJQiYDLNUoKTAiBXUDi2jauRmUFtbrp7oToxwkMJEx4QCJVsRSxMm2YEeQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1643528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirF6NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPaQ/9HHi6dmc7hMb18/+d1aIfyEZZTiFIMocLYeTXJtWmQfKSH+Bf\r\nFvAinQMu/VHBGrN/vYBiEXITjPUUURzcFezD3YwfgSlectWql0wAV3/IlDt+\r\nJuVwQJU881bPAzs5IocErdDpfh2WoI9+7GNi6EdhehG1Sk5LxmrMK9L/Us5t\r\nbzNLvVowotiMH2IA+/HcendIappKySz2l69ba16zYpOAlKgYLQ+4JBFvBvLS\r\nUsgts7r/nLIukcBUJbzeDpZM5irYLeGWXnNv+Ycs8jBIJIlZ22HQcuJS2cVO\r\ncPNDiDsl9P7g6hPgF5hrsl67Cg+p0LPW4sddyGGC6DD6m5pq5a+OdcRDKEKg\r\nmWmi5fiEAC6lFlGQO1EIKmlv8sz1sog2zbDu2DtynKU5CzAig/XSrHX9hpdm\r\nDA8rTYv+2+SBmNhNR38VkmltrEv96VDZ2SvFhbb7ZE/i1bjX2dxXORbhsmMK\r\n1+/z3ZKkOr3kwpffv0EQBxe9ILadobak+/UnIecDixOv09424euNckarWCXN\r\nqfvYomHLyCXnqbpwulSGKG0Xgkx8AqDgZVkKBM8NXu4FCkOiyd8UwfyH2GZq\r\n2IqanmaR1uwiXIvI4WJlooBf+q4Tl8mMH6wF0M/2Q+HFouFLqubFnqJaVjud\r\nV61NlNQ7JlPUsNtfnvTeL48T8GEqJ33dnKY=\r\n=tXbP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"76096a74be5040e139029128dcc6c71c60aec053","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-76096a-l4ic7bsn_1655463565156_0.6162269064085033","host":"s3://npm-registry-packages"}},"2.3.3-feature-8642eb-l4ij7qwz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.3.3-feature-8642eb-l4ij7qwz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.3.3-feature-8642eb-l4ij7qwz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a139a213ec2da89ef3e3d2c3cd1f6ac6f79eb58f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.3.3-feature-8642eb-l4ij7qwz.tgz","fileCount":970,"integrity":"sha512-qqHGvRV4DmSZmh/pIRVqB+WPPr4ugG12qAe8NwtMnW4+qsIvoYy1bf8aPoAulqVuO9flaBcYLF9RCL0QHvWpZA==","signatures":[{"sig":"MEUCIQDs4XHwSyDhjf9veZlXDYbFgliHaVAmbaONbHXJZUYqwwIga4YH4WZUeGstanL+iogiyYseCN2H3f4PVcKLv9iK6qQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirIySACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpV6BAAmOEdnQgRAApvIyIXwDUCd2jK0i4ln++XFD9kxJyDL3JvRL8n\r\nElXb4CPglnwYAHkkrkXJFfWkOGeccfDNUFdrs03arNNrw1YeKC2xeRbLCyaw\r\nzCwOoIt+PRDQngyXJQO3t2eZnDUARk6EM+g+M+P0I1gkPmHM30pEaqpOANRN\r\nBariFbqp/shwgcY+Sw3DI6js9aTap+4p/pQf2l+w9uw/DJkguaUkzf7V3cP9\r\nTtQHMjYWTirNP6DK2s9/bdKgDZKhwQgf+gawQBh8xTycM+0ede5TVJsLJCTx\r\nMkt2W9dwsAh83C3BR2Yd8yHbcbvVQ/PyMUU66Ok7olpWbxCltqquZmyNTFcZ\r\nhwPXSVFfvVBQV49xttn4vBVeuAo76JfGHJfjjKofuHB2pnTa+ChpJWsE/nyr\r\nFM0y+SBRSpoCrxyJPRb5+epBha28XwXkdPQ0j7iahzJWbgGDMW0oxQ9tEshQ\r\nVDO4kGshckynXiEtu2bcODnOT3bV7k5X80oQKAozahPzl3DbU9s/lncB2x6X\r\nHpcPEO2em3p5zOZZOoFm5/botxGena4R8BcTS0nqro0KsJoL7YRWCITPUz1P\r\nsOn/7TAhYDfKiksCrmQVF4GxIVJCxd2/E/uSgvaOP8/QqiqcfxBiv+4KmFaj\r\nCjbd9pj/4ikDaVVCV6zpHRhCKx97QkpRRgc=\r\n=JiLa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8642ebf8118d31b354e720aab95316c3332327a3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.3.3-feature-8642eb-l4ij7qwz_1655475346148_0.0862752345184552","host":"s3://npm-registry-packages"}},"2.4.0-feature-136512-l4mfvku7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-136512-l4mfvku7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-136512-l4mfvku7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1f3299b80ac356e6939bfc11d72089629b8f7f07","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-136512-l4mfvku7.tgz","fileCount":970,"integrity":"sha512-siFpD09l6850ZHrL/uQTxvYYcRt7l4UjY6SpsqRWjUochZdnk3nzYqvi56Bd7F6L72olP3kVQUzHUcibFK1QpA==","signatures":[{"sig":"MEQCIG7bFYgzF6Gy2T2+J59nR3X66Y1rsXpPDlHta4BdRDHUAiB+QkMd/dPOFWcdPWYBduTomfc6/N6hn0m9fzunanc8Mg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisCd1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNIQ//WQKGlSkcWxlKZKF2jjdABt+pqu4BM2O0L6E0WCBQ5ZB61mKS\r\n5+mh3PzcbjkjIp3oBjX1svis/YpLlBs7DhBWBrtUmqPhtDK/XhOcfRkytl9R\r\nrKTh+/EOPTNs240UGSuEow7FABnprUEgTO78i/Eq+9vt5rchrlv+VuuZAZpo\r\nrj03Cj8NpNerTxjNpnB9apTZve99RUfwQaU1Qgk4tgN8yf9DUiZOv/J1JWsw\r\n2r4xYGIkhZI2B0na7c6p7faTNum1NPs6JHie+kd3zAE0l26b1q2fkaCeWqsI\r\n2WB14vOoTH3NXiiP9+cTbGW47u6dn4FjkWusoTG9y8uwMSvB1cpNEk6Z8gN+\r\nxmXX9oETp2NluoTaHpKj72L1zGLw/xcPuaSfzZPuog968B450V7mfTD4NE9j\r\nqeEywQ7AvECVPGAEiHCJMrdiN0eKzIHuIaztsDd3c04fFU7VghukEWk3Rotz\r\nEZjQJyBqeGVv0jqqMHu4XFXCERMpmNSUZATnOVnV6i5iFFZddIORB7S8ii1H\r\ndXOxrXo5uUCGZIn81+wpRDcGD+JvoYhrm4M/CF57dnSO/oE4wXTuhw/KWaC1\r\nzkNVUUQ7UL1rPS8nEOPys8jkxHAI5pdHZTFwpjNCbeFEB4OPR1T00kNPORM0\r\niqNoTdaGC6SV0hyP8evofEpjwKHN698H2Kw=\r\n=tQEv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"136512a1eda3b895535d7cb86a5e01aea21907d4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-136512-l4mfvku7_1655711604981_0.019171285277016725","host":"s3://npm-registry-packages"}},"2.4.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"758c30f30f3001be6a13736277ffc390f7075252","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.1.tgz","fileCount":970,"integrity":"sha512-HQMQF51zWRgyAKF+Y/h08fuIaQVwwxtDTDeLMtRTBlctUCv6JBPISOKilTTaqrQj0O+rsHpo++yGwupEoHWLhQ==","signatures":[{"sig":"MEQCIDSK1NxFeNwuwWXMXiRXKy5bu1k6wWZp3ao+dKtoXY3jAiAoOBgkD/HM6cG8/VfaD+D4XRZsiToWg/z86MumaFsVlQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641604,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisChTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoeexAAhA6SQ3UspFd7xObqB6yPDcskoGIQexo+cyJygmGmmJka/dxQ\r\nmidyFQiuD9aXKRCIFLGmyWa8aSoSH9fzDqSpGEjK1WMekFxpRTHV0ZQ3STfJ\r\nda+U6r6VaAKneaQ0qDXGMBTbVgo9YhvTTiBl4tHcqf0tB64hviHKOSJxFurP\r\nXLYNqB5LC/meIIf3V6+qQZk7Sz8lnzyL7gDHwIGVot1vpnbhkuYMvdXkOOnD\r\nqyEE4EvlYarF/6psBrzO+3xoXAnmPmzp0bNV8/MfN8ajkpOIdiFQh3lhGC+j\r\nU73XniGyG6zGGGvwpHNEZtty+oXj3w1wbHeeDE0sneK1ZQj+WCeYE49CJS7a\r\n8rH8jPw/YJxWcQKoXN40PKx7NCm/P3MGasRSik+4MnV54HhmSr6XdwIi06T0\r\nc/GgFPy6X+qc8Al4SEtWUhdBed6KtAhJbwQxr9RyXWnSgBOiqMX+uD0DY0WM\r\njKQduaaM7Innt7x8yL3weInfvae9wIo2A6lvClG2xO4BOwCHYzhKFemsXsq+\r\nO06UtCKTFUFgV407wqf3uORUnw4OAHztl+QmgqcLhRHg6n96jxRrKekfR3cA\r\ns5sW/sCfoHHZu6GqXbFLIPxTx/CH8nGV/QUVoUNyryEINzh9uM3nVaJW7YV2\r\n9v8mru80nPwv59JKLEE+i4FqxbFs+8qa8Do=\r\n=6XTj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f92fde2a7d20e0f50b659044dfcb5cc5c0d38702","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.1_1655711826903_0.9377348421563725","host":"s3://npm-registry-packages"}},"2.4.0-feature-7071ff-l4mga6xn":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-7071ff-l4mga6xn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-7071ff-l4mga6xn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6aa940d84407c5089b430196b92902c7349dba4e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-7071ff-l4mga6xn.tgz","fileCount":985,"integrity":"sha512-BVCYFpwdeYCNjcve3Fqqp9PIuyR22IA9c87s3VnPLsUlQ+l+wEDEnbcUbNysWFuPI+PsUSAXzrZQDi5LwfnB1Q==","signatures":[{"sig":"MEQCIHobGs5mqhzKaqHOdWbCglbnZirKDKCTXKPDHHV/465bAiBYImS2z/7/J0lM9mtOgIByE6Z0uVbctgu5pdq2sMj/Fw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1731636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisComACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfGQ//dBj92CdI875M1vUF8cmIuk1TnPHHwEg7URf/ngxxZe5fpSrh\r\nC1PYtKohykgHGQaubmqVIVL0jQeeUfKKJ22Y2qzQ3ZiJX9VSCjsl2Er0B0Fn\r\nHty+9ZCeutk4BpvsestrrETmg/nEcCLTdcHs+OCWBWefztWhyI+UrOaeRXW6\r\nOKJzxWQ1YyRQYcfR28fkhEjBXzo4tqSsUD27mhtkk28VPwk1qyS2aVukl4Ac\r\n+BO/UCXEJuqIWJXrlUDeATUkb6aLMzgaWehLzP/ZG2JMv2dlVyu6ynvB0ZgV\r\nu0LTY6XPFx0wBuMImo/8RX0nVybBsxHyoUAjdXg3CB8mErpCdH1IJmhtCuhc\r\ndmHwmQ62zoBEkN6jf5n2ILin8zEsR1qKWbTDGmihitxnVuRb6jW8EaBuaykq\r\nzRyKjlqLHLF5Lz26Rmw5Tq6dvGQkb1wIfCnLz9gmR3qjjKN2vE2A/YbmJl/g\r\nLPzhv9ZLPEpsdKNTG6il6bNgeDSyWcFhFYbd97jaE8tVuG/wvzZSrFMQ7Xl/\r\n+19nJ41Jvqr4V1ONQDvv1/Qhb5gX/H6TsMulRjKV7Hferae+3w67sTusQFPs\r\n42eQwAEd3MO0XMdsGDUnggo4OL4ChE7pLRpURdM2JSpTbo0Wmb64zlWmh5gf\r\n1RofTzsvzoqtfegfQiFoW8SFAj3CxrZC1lM=\r\n=MBgd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7071ff3afa5676c87edaf06a2dfb1191956c4d69","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-7071ff-l4mga6xn_1655712294394_0.37585714333652076","host":"s3://npm-registry-packages"}},"2.4.0-feature-d41789-l4mgf2j8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-d41789-l4mgf2j8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-d41789-l4mgf2j8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"76543f406c13a0bc5954c53ec7ee9e4ba9cb4b9c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-d41789-l4mgf2j8.tgz","fileCount":970,"integrity":"sha512-qoc1vtTNOWIvoP3a8uTc++dIRjRbpVSPzXgQ/PmnXzwbWnhCvZ97E5js1glKn/yxS9ThC4ODI2tlDQT4Bhr0NA==","signatures":[{"sig":"MEYCIQClC+xIMexCy0TVYJL7MdjiKeL8GP4lqaJ4mnufaOQZQAIhALHE6Zt9wC5UuoxO9A3iGhajBX45vbrpG402Mi4SDdxy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1641344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisCr/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZPg//Sq8483A8SNuTWAaKO7sFP3lcxSpMqniEPE8Fx9iYYi51ps5h\r\n1u3cAh2V2bchshytiIm2N7V/ZH/qoLe+0LFeZXQoDeY+sDyTSBjEqs8wnXDH\r\nBJMsYflejdQqjTGOHJ54n6RHhDnKcUwxXUmcB6/mKMcZN5dugHCq746wNPF5\r\nWYSAT/xgMBrH/0/j15Wm9oriDwzvsGwPdcVRSLQoEZxiJvoRYq/hUSL7zlbQ\r\nPU2Gj2zxlQmKJbvLQS0bwUjTDG4MUEiR0zWFNYYB7y2dVU3l11C+LpxCCbPq\r\n2jrLD+4i9pz68oIW8ng1gJqQCf4PCTzT1PvSrFKFCOjgT4nqtpa2NohmHnJk\r\n+RDiOvH4Ehzc8Qse1XAQEqa/7HkP9yvs4Htx6hgZ8i7MF9r0o2iE3tY+5OvS\r\nLYkUCDCsOV6+43sIKEMO3TLYDhuACJ1VaaebDTX69ApGfo5G4Fay7lfMY9Sp\r\nDUMie0ehOhn5qHZ5I1vIT+O9ss8/1BTKFaH+vnz/DPXgtTYT/jYd2Nul4I9b\r\ntfXRcOxQ4CpJHxRNg07Bmp2RslyA7COXkrzvtn4WK4Ulr1RcCKuUrqAox70S\r\ntEYp6bc3Tsv0Ex1ZKW6xqzrgcNn4+EOrEKgbYi72NmuoTo9JmnJmn2Nv5RL+\r\niziaGh1ffkLQ0i3+9FhxGYDbH5erQgV+uYs=\r\n=jvXv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d41789370e61b7d51bd9e3ce54f307f9ab687008","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"13.4.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-d41789-l4mgf2j8_1655712511665_0.5513860897479341","host":"s3://npm-registry-packages"}},"2.4.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4b77c303da470ac2854a4dcc48d6c3e0ed7843ae","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.2.tgz","fileCount":970,"integrity":"sha512-NViGYyOJN6yGQE7QAfH454nvADlKvxIXNCu6oX0qkaH4mKDvQe3+jQOmtUrXdPhVWyEz2O64e7ymK4KWyTpLpA==","signatures":[{"sig":"MEUCIQCsRzWvs65nBLF3e7feXhcrhBEXUCLsFNVpAepOjv+G3wIgOa78QhLp6zoLCNSre2fbBMkGmuKbvy/VnWGzk0UWYYw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisCugACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkWQ//QvcSszBuAJnKFRXR0utkU4jUi3+EZh5rtofwkaXjaPWby+1/\r\n0F9WWBrfT3QKDoOr7dLOAN0UFPw6mp3tDtPo3fhcPBYHaI74+NMWLTvQFUWB\r\n9aV7dKlw2E2K29A+UzBsW/Rb86zyvKVHPkpOwRLT3EcsfevWs+jkXx1JAXJO\r\nOzoae5386YcOol4TQY0BvnCGymn2SvEyVjBG238p3S3DTXVJKQS9jkHUHyMW\r\nbbMSx4VO3h0dUVQwmQ9cqEv+3LqHc5of1PuKQtzCABfVeFRujTVETqRRQryR\r\nqXP8YzqyRexvJKfQ+c/A1DE3s7Q0fxIbyrQAH7UA6JOJ8J4q9iWHuz5zqPPx\r\nf5kWDYYTtXbTjpPqr54o2u0/BcTaHqBOJwxl/+2QhkHCtmOPV+SiRJ+C5zST\r\nPEul9Pzqw47Hx+xytjduHaV1zG2975fJ7EjDxV5X/dOEzw9EFn14/z6uU2V6\r\njMpTMb1OvJ3Wj18biA4l2/VK/XOooLkMXy7CSZFDspRREPJBj1gBKanH1fUq\r\nrh2HuQuH4Wi7iZe9Vt94ZvA8ukItq6dTnI5lLhRt7OOk9nqjgEgmsanrRaYb\r\nsRsFl6sIj1s9J9rP/CDg/H7W+RCrNaaEsMPCh+Vq1oc8YGabJnYXT6qEZyhC\r\nffhXsZr+pQucqane99vw9PQmIiHmisjCTwg=\r\n=fBVc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"89b0af1a1317eb715d9e83ac90bceae6a555cecc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.2_1655712672308_0.2435762881215311","host":"s3://npm-registry-packages"}},"2.4.0-feature-ac9b10-l4mgocpb":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-ac9b10-l4mgocpb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-ac9b10-l4mgocpb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"075c539ca95fa2602a0f90b3b995d3b4ec1e2d9f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-ac9b10-l4mgocpb.tgz","fileCount":970,"integrity":"sha512-Rw1vuHwGFTaAv40Ao25TQQEVhGiG7Bol4aHuOuhwbdeX11/cwCUOjwFUP9LfNmqGGhum+RMQbB5IexaszN/0Hw==","signatures":[{"sig":"MEUCIFgigtLP0JRSnlurk4PQ7InXvpZi4jvyz591CN8EFarcAiEAjR/lqWOSXhHBJIDsMa/REi9FxIwXW8iEksj23OJnbT8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1655571,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisCy1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmppkg//WbHEt9Od7DKODH1m9t+b7WcJLVrCAi0epuZ5BUi0vFMT3E9B\r\n6wwZLgzoKimlu4OaYtDgp+o15GTAcw/RgvFpi6/mPlCHhOAuzz7qANrHYUvC\r\nTefnETdTL00H/B0ksSM95gfef2w6XNC29r1vuhb02OuXSab/YbTmVkot4JMP\r\ncjbIRKstGE4SfRGrQy94aBUK33ar/iuXKax6BBWNRl+AS5CrlS5FdP8oTwRY\r\n8vUlUiRqLoy8Y6h5chKk5pawLabfaDVLGzyjbugRbKWGgk9HvEsyqj6Nt6e/\r\nlJq+OOa1g+Qwrd9fBWu0OSKp7fCIQw1nI6nO8ELnp7SqAKW7MgchcWcr1DSL\r\nUQbtmeyhKgYHznnKBUBcmazF7dz5VGklJAp39oInL4IVRaLTeNh6qKQvHgxP\r\nXqtNUpsqLOY/jzsgdoEK7D0sJL57JCx06/v/UrryrTi07q7VGu/fD6gFUmJ9\r\nmv/Mhc3rZyg4tEcHXzP3fm9oG/waHjCn/J+8yG7gw6uay80kusmaj04oC56n\r\nA2HDvfmTYzzZk1M4QT8ljnHsR3XGp6931T259pmA0RWRBZpZeD/UM+4lDqVG\r\nXNQ00rA+s/f09gdbiDYpO3Ow4whTC1X8Gi4m/6EMEaoRwa0p6SJ1f8DPVYPn\r\nReqkLCCCrNN+2h59iE4iDpy1ubCFAJWDhe8=\r\n=fes8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ac9b10306eab80b4f117be00fa6e3ae282df108e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-ac9b10-l4mgocpb_1655712948827_0.4051798942938303","host":"s3://npm-registry-packages"}},"2.4.0-feature-f9aeff-l4mh44np":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-f9aeff-l4mh44np","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-f9aeff-l4mh44np","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3837b7d05fef3e6b6ce67bf054d5bba1c4d5a73a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-f9aeff-l4mh44np.tgz","fileCount":970,"integrity":"sha512-4WOZckwQkN+jrni7al9NvlsXyQFNcM2oI/gUAquOvM+1sdfuXG4nJ/GF/YaIpBBXzpjwvzGWSyNetjG/JDI/dA==","signatures":[{"sig":"MEUCIQCBAC3LH8AuM0kwrWsR7VZSDp5KLSCJCKldCc2UZeXCWgIgIAz/V/r7PUJ0HNJDTzZOdBT52TGxOFV8D0W9JmMcJcg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1655579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisC+mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqWA//QYLNpw4vIxW5nfYyPA6qc/m5GZQnUGpVUHTLwSs+QN3Ap9ay\r\nf7/vm+O+UcR+RZAX8HzENESsjq3z9YbW90QofbyR105J6QmN5O9wkNs/It3s\r\nU/NvRnnI3C94GEkZ5u2zSUvFogTfdmA6k/Alh3aKgClp9JpTQQx6Wv4qOwBa\r\njXLvKetN4JgCTxyP5cddbEre+KhaKXxa7ZOvwi680xW+SGnHSqpC3oZOuy8Z\r\nCTq5lsEIZoPgvhslskkOOWtzdwNjwoiiCqNE3RGAHq0NcJ4E+Y+4dZh7VGdZ\r\nms3hD9E0t3GOvPaQmtslnGh6nzPjvb5b4Bm+jzDr5uJNMxD0kUq87kAaUIF0\r\nx32Jn6yu8UTNjcFv7cQhgszUPEqPCH/NdEmWPtQyyuLUCDNxKyypL7Rs6Txd\r\nrlOdeBEwt5pQsLbhAtznZblQTl6nFD23CHKRfpZ1IxRYY9oZbFPqdlQm4M5f\r\nsO9ruebNFHtpQgtwsOGeMpdb/UrtgVaUQJp9JVIRjGHzzDHRRa9xpQ7Lgq5J\r\nlNPOc2pD/KElgvblaxwPIYCD+7dgO82/XqKoBnmGQR2pCielqhMHchLZR9Qc\r\n4Rt8j7v7eDe3XZoWUdbjqRPEMVEkK2GRPUB7biz2ZyjABbVfHfhWFOJOxG7X\r\n08gwDyAWR0lM8Mpy3pg0dcCTZzvZioVbvdM=\r\n=1NSw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f9aeff4136b056334d9b8a12d7720791384f4df3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-f9aeff-l4mh44np_1655713702566_0.6869674120059892","host":"s3://npm-registry-packages"}},"2.4.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a38eaa8a7e1ae8d86386fafd9c976d761306647f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.3.tgz","fileCount":985,"integrity":"sha512-1SPeosDp1734QKY7rvEFAnNgwAJwV9xDed+zBGJZTSuZ49K2qA6/Ld9PwGb0UFL3ywB3To3/0p5oYmbWfv2/Jg==","signatures":[{"sig":"MEUCIQCC/Og0UzyUyeiIeyLki4uPgF7YChgnZhQK0mqEX12gPAIgGXcFLKd83zJsQkvNOessxRrgkVGdebu8RK8199HPzGw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1743633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisFvUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpenA/+Jk+DfBHPCktoyP1R9qABwg5vnDjWnCuI3oTMzhxoFkpyLpKP\r\nEOoMCBcDmVXGWa2PpiH30seSLTYYepRQKBlYlqOYfD7vR1HUdcDFeG4XzrfR\r\nimOHURVG1au6RG+hlpCZpFsnescAcd9H+eZp48Hd8C16qDNuJYNXDuKUKYN2\r\nQZADrffBKoRcAxINvuLbuuAhjphiSsvENI1TjOp1kEPKoqTwgBUDkXkDCJcL\r\ndvzNROPaIm6piHyVVly/DUBirZR9Ma23IOiHsiC2rn06fpvlvY/XMf1fvW8O\r\nua11XTJuzBFisCK7wnPIsrTxZZTdqO2owk7f+5Xazp36YV1xuP91sRjKSIVv\r\nyj+OVf4tmI8jzRlD28tHtf5+PgrSjeHxcBvRr7QQx+Tng1M0FIa/9AltT0+3\r\nsx0rpAhkkTl+JAXx2fVFQHWdiQBSb664cFnG+vkD28CWzYDvi/wdXH/EB5Ri\r\nnqcEGhXI7Q2myt8eBHyIZOzovFfj1EKldoOYmKGQevGr786B6AGqDItmnsWg\r\nb0ofdpLfwpcQ9RoWamaiSseyi+6PA1X/GDy5kYz25Z+4xLAkxoNCeD1OFOkB\r\nbCLq6dyfqUDXPxUU8EchQ8jm7mwgWcXsBZmToLGCcDGUbrgf5JH8O9sRRbet\r\nhEd0CxoTU4ZiTwp3A1pZ+MFiUGv8P2nANFU=\r\n=DLTT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5f861b2dabed54fe87a3a9909e316e1258907d71","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.3_1655725011899_0.6854107633312969","host":"s3://npm-registry-packages"}},"2.4.0-feature-824fd5-l4mq47tq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-824fd5-l4mq47tq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-824fd5-l4mq47tq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"604d690ae2dea11d184bb7b6f4ff1b368ab7ad37","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-824fd5-l4mq47tq.tgz","fileCount":985,"integrity":"sha512-J387Ojf5Gdgx2YwP7BJ3YEtKUY8j741jlfw6beeHMMo8Ttg3gI5YkyOh2VoB+3VW1hveIz0a4xBPbtE4mx+LQw==","signatures":[{"sig":"MEUCIFPFtR6AMpqkRE/9N0oCG3m+yDhY3fl6iD4xuEZB6JDvAiEA96n1tEfsmWhtnYDo8s8rOXnZy4lqOy71mCrEf4JmVFw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1745595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisGqsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqkpg//aIsMuQ4bQj1phAnNeHC+HXxSJic8hNhxReud0Jzsq8XbYo02\r\ncWKId9EvTIN285I1eSDzOpZ7UvQqQie7tce3zPuVGZVCX2xF8ED8bNVE23qw\r\n1hCa+OUFl3wpG+onOZiIYliCtNKeWk2uWUVgu3W40Xk2DPemBUAejFRaZxSY\r\nO9+fRHD07qPGhr+hidiizF4m6m6vEr9t9/NYcy9lEeLKUDru8ZqUM2ckMy/L\r\nq5flHzZOJTXQdE8kVyTGCQ4PSb7e/K4r01bpdBo8Lpy5rkbc+6uwMUEd50bp\r\nGs1RxSoa7blBBWQfa0QfXMbpPcrYRGKFPD0+6ew47+pD/T7X7VNJkGFlqST3\r\n1/3RpnEPmmorgdnH1ZxXl7bbtfI2t/FkSbuuiOyGSI3SA03io6YtZrO9/v1A\r\nh9JdrEMC7I4fr8dwSeGNuKFjg2w1UvfzYqvMlnYFQF92o0+W0nzcNBHcvD+r\r\nS/xqLD6hHTg3orpm2zEr3LJGlWPtsaKFo4q+f+u9dsg6HgOlxeolo4E45i0D\r\nvKIzUxNfhYQ3/Moj1oF37A6dX0M9ssJF6BMsAdX/7nVQKRDoxHOQGXVY8DcB\r\nYTjMEO/hDQw2+wB1Bxt1iK5uYsG21u++IOneeOu/R8ezoApEvb3swTCAK7Ur\r\nbJmMNguBfXN0pD6spfpijm0xLDQwQc6wtZw=\r\n=8NVq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"824fd54f55481d89a4d77db1d806e60a03c56b4b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-824fd5-l4mq47tq_1655728812053_0.34277949461874746","host":"s3://npm-registry-packages"}},"2.4.0-feature-a6d2b4-l4nutspq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-a6d2b4-l4nutspq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-a6d2b4-l4nutspq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f313ca327be9070fede918b3331135ca65bc48d5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-a6d2b4-l4nutspq.tgz","fileCount":985,"integrity":"sha512-KwiazFJRocHee5Fdre3zFegUc/FCWlWRsZrf060b9alqruBjr0jQcqg/Tk/3GO8M9NubjdWbAIW7OcWLqHdhdg==","signatures":[{"sig":"MEUCIH9/t1RGnWHb4++EEvewlZC3e0Doi99DX+c11Dn8JOaGAiEA9QH1tr0wpiTGJBZ1qsxvnUQ6OF8MlrFASeZY78+33cc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1748589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisXXFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBbw/+JkZFLaJ7HU8/b5EFBZgSyn4RGD7YMINosznAGMC82/0BM8YZ\r\nwm+Vdl2tQBe/lDjWD75M4T8KWZMzR7OUpK+gw4SykK5bCRA35r36/wjWbrSq\r\nrmcMnVSJ21ZIHTEs113P7wUzIGss/V2SImKhGfOSiBg3S8/1LC8IfaxFoVsz\r\nZp8YeTA3W5muYpz5mRb9W64N5P/WM3XNxKrcFo40KX1vBqeTdBqHhzyWyX4h\r\nE+kG9DmR1YNfqnXLd6dYVhd5OoACaISbJCg4VYQ2tYNQjSojLom4wuM/k3Dz\r\nPlR5aUSs5hkvzuyN6oj/Ia6csbRWmrYGrz0D5HqhwDUA5rjLfbOk6qqx6DhF\r\nL05bxQmwa66nvQ0Igj760hhQQAn2Be9FxKXewzrpRPHaF7oH2K0Hhm4uUAoD\r\n0g6I8CDE62P4fw9GdnHHduwdVAwZt00jvsqVwujlyytCVUV1ebrVpHiHRS3u\r\nm1u6N9HeQmA3Sk8NhNdeyuwav47RLW2KWFB6m1lb6B9ATJWyzUyfdfNfgXaa\r\nYRQxmhzjxaGPBYnSs0sqaM9IN65WDxgiIN05/oD1O6YQMfcNXnbtc07YhaWi\r\nTcB2iXH4HVB76k4oe/g/B14o0M5eUM/6t8pDUZh6pDWr6vVCD5/7mpsRY5MX\r\nJ3wrmjq1feLwaiFqh0gXrEhGmc7fN3fyqx8=\r\n=gwF/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a6d2b4e591c38224b09a9eb88f76a3d0e8d5dd85","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-a6d2b4-l4nutspq_1655797189103_0.7904385705473442","host":"s3://npm-registry-packages"}},"2.4.0-feature-2f81b5-l4nxm1h1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-2f81b5-l4nxm1h1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-2f81b5-l4nxm1h1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"890f2f9ee784693d174151364284fb3d67c47c8f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-2f81b5-l4nxm1h1.tgz","fileCount":985,"integrity":"sha512-e4VOwTWVm+Y1MzybTQdAcihci4JjgNHYlkfwFhycyoY31vYbtMrCmal0G+C8qz2fdE1Nrn9K4Kwm2kGN09F2PA==","signatures":[{"sig":"MEUCIQC0E6eMPqFyt0jP46bNtHkQZ5hPybs8DJ+2rPBUOpqMUAIgQmh707Z8UDW/jqxhjVCkb2fhHZx0PDyiaSD3K3SYA1U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1748589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisYgPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpb8g//XQtGvl7QwfI6xylACBGOW0TdF+YZW3eDX5REB9o+YirWhsf4\r\npjaLzEVJhQYIfg1IiVm690/+OpkaYj1t24YdOA4T6Byr1h2bM/MzvLcUEUni\r\n7GjzMe+zgi7/WLoNT5ovW+vUNKx7VPeg1OTq3KMLS0wasvQO6WNekQAtfrSP\r\ndKggtPXes218iMxD2PuUNnlL+rkt0mhRFObOTr014vlRfTiOKir2amwCCZKo\r\nt6MhgWsPefonCbtCGl7vZ351sP4ToyCF5EOu6/H3HCg9eXYOBM3mVdfFqbYb\r\nWaXpRC+PKpQHoZHFNwfAnrMITrcaCdr9tl64OoLwaxJNjqZDTMuvFB6mbt6I\r\nSaTUEe/EzwXQqr8a2PnnRHrpTi99GI/G27/bkYRqaNfaf+zPfffTa7UJUhha\r\nITbqd8EFFiE4dAVW97T2aHNWlg+t6EWs/Q+rQwfH2HNPq4VlLa887+d2qN9Z\r\nV4feNLFUugW+23R/T3GHOaYBbYm5pBBoLygmUCHgGPIbCQBslUOS+fWZ/8B3\r\nUQM6RFZvIZAwmbVLjfr368STKHrGFFWRDkXK93w5Z71A+mvv61RpZgVn50Mu\r\nIWG007GKY4WkgPKMOESMLEvx6XzzcPaSTHIsplaXp3PuL8d3IGrv9SIFnFjQ\r\nMYeLGrolaunzJJVfq6kYahPZ0lg5Vsrgy10=\r\n=Ax8K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2f81b52afb44cdc9db555c40115cd4d63bf865df","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-2f81b5-l4nxm1h1_1655801871030_0.45144411582825184","host":"s3://npm-registry-packages"}},"2.4.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5148dd869eca40738d6f3e6d66df4574766e9578","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.4.tgz","fileCount":985,"integrity":"sha512-zNqrdNsPvi2Nd3iKS/mwwuAV31PSxNN+iqbIp7XrlQRSDcDhewHs21goI4viRS7kXs+LBbn1OVnFDypCOLyeIg==","signatures":[{"sig":"MEQCIACYY+3fU4FJPPVL5nNT4ENYoZBvAp5UhxGNIZkq/FdZAiBbleQ92rBq4QckbcMeeymrIYszGIYakNUkkGMSsETw6w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1748573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiscDjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1qQ//VZmuCsIljjQVgh7GJv+eVTJ25LPoIzfb7bZDF8xatew2RhSJ\r\nZ+ntw8ortkYdVXzgXK9EQaZYS27DRrH2erDhYtMlsoxtu7cGPSiTWQhCjfxc\r\nIDpkXyUgpzOVkNziJWZUnysD57HZdkr7+UcTt7nr/G835YwPFk7xwa2n8MiK\r\n49zOZgcweZJhslWsMy5a2dz2eZuZr6zjjRI8Zfnot+mLz2+3hefq5Z2zCnIo\r\ngc0MsT99MPtdkssKxvoI4J/WnKcqUPX1kfLRclMR4a5O+JhN7JLaTdiIgX7/\r\nVDyKj+Zuqg9M/rQ/E7MHYNpF7+syIu/pRW+9K4wUXICeC+i3Im3sRncdhkmD\r\ncqPCrawRuzalgbBGDEgu8POwWdINusow6vm1odJbMl2G1djMNY7Bl+qs1lhl\r\nxzABfOg1+56/Y4YybZA+GObchJQ654kwaetjitjPkmCUEahz3sMKN5N36qxl\r\ngs2ebENs42V4Jfc6eouVCDpjfYwZ1wGbnjs3AJxlKWRff8/7TWG4O0mTOWkR\r\nheAM8MnZHLEpfqSEnE2R8cHVRa3d7Mr5WXBTTJMph5jHZi6O2koePXbNL2s3\r\nf1Z7kXpPwv2aPJgPBvKCRNTA4lVi+/HpFtYr+yu7y2yaRlggS1pT319ww34R\r\nC8cJUAa2JW6jsgXnWV2tb1PsLWOHSNO6RiY=\r\n=lpdN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e3153cf6f466ae9fee82adaed46ac3f2d98b7716","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.4_1655816419552_0.6108599872483291","host":"s3://npm-registry-packages"}},"2.4.0-feature-8fc3b6-l4oa8jvk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-8fc3b6-l4oa8jvk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-8fc3b6-l4oa8jvk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f351fdc0f178168996b46845811592f4936b4b1a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-8fc3b6-l4oa8jvk.tgz","fileCount":985,"integrity":"sha512-/0Bgg6uxo/btMMy3eWJYVeFu9/OVFDSErUXwPyYtjdZhe1DXKCaYzAL8RlaEle0tQnr9KSb0t8gFREw+iLMvCg==","signatures":[{"sig":"MEUCICzSbgO0pE0jVsNHNos9/gWtHeslvFB+SzywTWniw1zWAiEAoM3dCzt3BEUJtpckiztpzPpOxGM0+meBeuhSA4fTAEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisdsFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrU4A//Ul/CcjpZW8dwNU7v8+0vET+w/Tmn5ch/ePR34Cw7EXCWxmsq\r\nT7AHa2WwjoWwI/ST3FhtbxS4r9Ifz9kecezgwZy7kfCOAFI+WBTWUg1SJ2ny\r\nBMl21zZDsqgT0azld/VWP4PZxohn42TW1OHTmPFE/CXGMKr43Oh4Hoh7EbaX\r\ncN27bfRORHgXy9xwmT9E7E1HlmozY4O3cmkb+l/AcWrl34hOgATHuAYjMkRu\r\nmciwakzGVqBlBTOD4JCFLw0q2FqQv0rZuZxxnDEHw2IMw3OPpNVvXL94dvy5\r\nEgV+Ar3r4GsfiQ9NI1M4m9qd29sAfXlilnM6h/KCJxQK4yDUGSS3l1sdheCk\r\nYYuXz4tD5jV1R+5JU48blKdWCgzIfu2Klkpe3d+mnRKmaV839b7cl/TfjiBJ\r\ni38DLWkNdUotnLEgMFcRUk/xxj7lPCCGDNKYQ8wAPdoYZYAG2oJP5srYiYGP\r\niv6kn9VDLo0tuUY4NRws+g5f8XCqm8zwwUcqHlK0cEi3WtgXzdJK4xaZ3GJG\r\neOp7bbZM85BvrCMXy2zwDwxdB91rZavj5DHd24ODK7gM96v9k8DpRYsx5FT3\r\nI3qJvzcYNjoX0kVx6s7CiYXzA3WUFP7SXrZoWjJyosyB0ok7jSVg1H1EP/3b\r\nbEtf/cnsOU+gVbyHR+sOrS/hkoBS55NTRP0=\r\n=0T8K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8fc3b6680d9da5cffa16887b309152e952d9b60e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-8fc3b6-l4oa8jvk_1655823109442_0.9792384057740446","host":"s3://npm-registry-packages"}},"3.0.0-feature-003c10-l4od81x5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-003c10-l4od81x5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-003c10-l4od81x5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"afb549fc7ba9d9ccc8c3cb40dccc66a306c67987","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-003c10-l4od81x5.tgz","fileCount":970,"integrity":"sha512-rWgda9B3/VvQUVsVD2J+UOR/smWFDeXzN5EdqpdazJhrfOEPnapqHJ+hcaVDGXcMPD9RXHnif3SOkSzVGTE7EQ==","signatures":[{"sig":"MEUCIQCjTaXsPVsAqIPcYFJL+1idD86zSBH+DcLI/hdU8NdyzAIgY0bwz1zOOledr36/8TFhcncLwQF126wDPcKMTFb8f90=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1740502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJise54ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0uQ/+J/qhCOYqqrIRejLqY5RCzHVZdyrEgG8iX/c6NhTRvRc4cl4p\r\nmiD8YRfmQjxU1ZK3n2hvLjxpG+h7UgijiSEdD/GH4v7zRKIWXxekb+TqeS6A\r\nxQ+Mi9a0UqleCl6+QcejO3c+ckS84QTjJokU3cEVjbHXsqb33HGdM+w3QS3j\r\nwBimaQGzoiO/0me154QomMk4l1XBUDoJsqrzkavP0X5d/NP9UcqXgSvVybJr\r\nTTz6PzZQph1xKz1Z3AUL30D88KMW+obQRHxAku9ovFOWVHhE+ly9gqcKnGk/\r\n1w+cfo4BNogGPkZZygyyF4QJpUwHyXh9NJ5MesElmF4T2EqOJm5zRsY6EUo0\r\nufzx/xU3u7n1ru1U4tWMxoZikSnw0S/Tqjd0fh6iy3mDJwpfeF57KK9Mnsg7\r\nQp0ARiWWwNuqdUaoxKEYhekaS1VxrF3SA5UG58RMupI8oCl6SD4anmfuQNyy\r\nFHv14VNneXqWPv1JEJFca16y7ofg13lPyL/yD/faeGNkwRmk+UN7sp1x0KIs\r\nOLWc422GipNl2F7/etu6Fynl4G0HcyHFTMBJ7MfczP/VuvICfgQuzVl4PlDL\r\ncYrUblLg1Db14FM+5PvOBfkdJmwvfDoig2aw+fVMmv6cJVotkCAUtK0bVkZ4\r\nmlWw6G18brmA++UGEpHD6QcTb1sNy0nhr3o=\r\n=RNUx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"003c10550063c1d009ff1166e2be14a8e28d1bf9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Atlas Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-003c10-l4od81x5_1655828088249_0.17998249844258862","host":"s3://npm-registry-packages"}},"2.4.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"56f35dc849f35ba9df87a11fb124d6c64f76bb31","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-beta.1.tgz","fileCount":985,"integrity":"sha512-Qp9fSkZ3MWKN234pbeY3SFA+r8me8rTjHi308o/XJn+ZgAPI+7bSOqWKwHVowJ00vVIiurgUD07yM4yYLOJ4UA==","signatures":[{"sig":"MEQCIH2MLE1wVA37RMLHsVDt7zI0HckP6rN6rm6kNeMAaDKeAiBcIyY6wWfSfmNXv6zw8Z34Ek/DrKJ+1/cuLkACbGPmgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1748573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisxsEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqEERAAjhmzWDh7LszJCkPvI2k4Lht7v60+53q9RUe4byQxDVy8zERM\r\npGtYCjAX3BLzj0rw7Ms+36iRi+sTs1t1bFu90ZsksVAAo9HbO8/t+XVcBsdd\r\nqS8vUVxalBIDyRjIy07GdZgsvFaMEgvQqEidhEo92T++rso1A92ULi48VceW\r\n94ceVeUv89Bwj59XbNf1tQhH7dZagb/r9AkNis56HzCPcmGgZVMYVh67FaVG\r\npiwB9xlCwtrfQxfZ+RmiE1lm+XRhdIajZtILxS0ry4e0N0sfgC0SDVBkJ2Sw\r\n3eHWAsQryMZiMZyxifz4g7BRzIMw5sWhzd4d5JQhNmrQj2H3ZhjeukzY13H4\r\nDDgd01WcQSY6nihZOuDo9MU0BYGR1jxtCyF3Sugko6MUcQ0CVvcUqqloJ7+C\r\nMOxn7tfz3db68tw5EkZytzl7vxpM2dN/+acfksCY25Q+gS2nCq1m2C5yXO1t\r\n3sLD7u8q0EEA3hF+0+F2GGcqZjqTB4AZaofaCJBVrKFdRmuMTmxtxjD2HAP+\r\nVRQmUErQ7/bHuUHTLmpF6KQ3T9DhlihXqIGuvAN+rQ25v4cojbVVdKiKQANG\r\nISm8RBOjq4FPerWIqcX5EL3qSRUgFkCzTmow+8YU3ZaXT+LvlVimUEIqYljG\r\nKvdOfyT4PfXgWKrrXZw2atE6dMtLbvpO4/4=\r\n=mTwI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7c2ebbf6577de6f98e8e8bef3ff59a6702aa438a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-beta.1_1655905028686_0.9285606618420807","host":"s3://npm-registry-packages"}},"2.4.0-feature-bdbe98-l4pn5w93":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-bdbe98-l4pn5w93","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-bdbe98-l4pn5w93","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dfd1ecfff54d5a67dcfc2f8a4f83b307e8bc1205","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-bdbe98-l4pn5w93.tgz","fileCount":985,"integrity":"sha512-WqKFDk8U+P7jZ+FItj/L1JbcCDsws5buZMKWF0wShbINyBIpoemjOyc24Kv8+RSa+3DiWFFelyR4KRiPsFIcyA==","signatures":[{"sig":"MEQCIEuAZviLk+0Z8iq35M610oVuIBcjH1gqZdVksfplsso6AiBvIFlJwj9sWv0j0FTjuJN5NyL9uR4uYDOu5YnXTJJ9vw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisxvhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrztQ//UQsQu9fdk4Fiu4XEaaFhevUdq+hUK72I8vtR2qaZgZ7NuDsX\r\n4gTUMrLIO91oN8ADcdmxrnmIIjujjtRy2ntVEj1dIAXSduw7FybyFATyNj9a\r\nRQQ+K5qEZbrXzGR2AWeIuv+nozQkHbKlRTAGZB0Kx868lc9AEWeCcpvHqSh6\r\nSZvP+Na3gUtuLDQRN2MjqPfdtKjDydLCeV+GMgOINb9CY8KYBg+oZp5FJ1xJ\r\nIN6EOdmBloix1t0yUs4+LpVj9t6FRP0iMHSNDhexmFebDMGl7TQYXtix6P0X\r\nr5npKeP/BPPf/113ed4MsgXEV2q9u4AQps/OcMdaaD1FAAzulDHQ9HAupEmG\r\nhicueOZF80JHSbn0L62mUEEwqi3FRXbdziT+z0lcMN+Kw/Qbod66DNFZ/Ykn\r\n7IuGfdi8vkYHHVoEBzAnpbp7y7DTUjGgI8+SbeE20LAJ4gzPVg/gcOtI95SU\r\nC55IyNNgNb364jTMSknqNb6Qquk5qT9U78QzAaUQ2xLscJhns/uEqL2bWOtx\r\neSUNHs9eOobNvw2RNG8YPKAPDxcIvNFbvBOeJJF75XDcptKr7z37ew/AoMOL\r\nMwoHdOcM3TSK6N1YkgkxiZVlKFXeOxaENTFE3AEorR9Qys9TzzhaXmlEY/YS\r\nInAWxpjbuqVj7Yf2qVxnchxQBVDYRPVZKjM=\r\n=CW5b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bdbe980512d237e03560be6d6e9b8a2969f1ec1e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-bdbe98-l4pn5w93_1655905249380_0.45318329225331744","host":"s3://npm-registry-packages"}},"3.0.0-feature-3e96fe-l4pniser":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-3e96fe-l4pniser","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-3e96fe-l4pniser","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b3a7e7e6aa41c3b3653f8d2d711a1e21e1e61703","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-3e96fe-l4pniser.tgz","fileCount":970,"integrity":"sha512-dqNu9CfBgY0VyiicEYubFWbqDycIWQe3aC5m0hbQjMDEX1jS8s4ApoQYZiUhaq8JfaJ7hhW9l1A81YJFO2RApw==","signatures":[{"sig":"MEYCIQDCwQmLVu3pFMaPQ9IBi5W2ZVfb1MTaHcZX6KMsgVMIewIhAPT1WFtVVCF9sK+x95kiQ+RF4rEn3awl1gXKAI0rXjWg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1740503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisx45ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpIYA//eHdnf2vV4bfp1MYNmYKMwK5V65GwFPfGTkj1IZanBHXDq/sU\r\nLDgnxGmDE66Md7d2OKKB1RLenmAiL2UjksnlzuLoZL/phZLpJcY06gJOeVgk\r\nV8idpKVNYXpWaw0gxxmOzugJp7LPLS0OZywqSYE4sssrO35cEg0clITPDTtX\r\nkQAezZGU+UKcXoOWpCcAcvJAzV00XDxs+l+QBDp8PjAOPKPuzQ+YObK/KSWN\r\nJpI7S3GCiDnNASRcuqxWgBxrDmZbV3q+4MhjxduEF4dM4yWWNIG9E2T2m/3+\r\nNO9N8y6PqF157iznTmyYMWipMpZgZUyUkFYZ4EiFXDnCjtkgIXSVXr4wO51x\r\nkPN1eXSVjzcTaWf76qLbsV8WeRWF3qH0QnfSW0YmSdnhCHLWnwT1lZXQ/NSY\r\nsO/yA2HO3kA7Cx1VBWQdxaII3t+QcL4i4dHBpYKFPYqxtMaCcKQMkZSSY0rU\r\nKk0I36Lrg0420qiPXb/uli3WQR8qdNkzATg+ikfy9mEyh/HOJXCxEgYyciN6\r\n7UT17fa4ffhLULyN9Yf17fKM+j6pqG40s+15aEbOYsBDiUiqwXuwoI2UbGTU\r\njuxhyYPgPeqNppp9YLFLroD8b+0qe5l1Na4v5QExXgeJ2pmHfYo7fG0O24Xa\r\n8tXQoeq/r3QoJfSNsmIfrNef1uNK+O6HTYY=\r\n=K492\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3e96fe6b16ee10972bbf548dcb01fc9f17052f5d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-3e96fe-l4pniser_1655905848880_0.6284740746779958","host":"s3://npm-registry-packages"}},"2.4.0-feature-d7018f-l4qwi4g6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-d7018f-l4qwi4g6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-d7018f-l4qwi4g6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"008cb11c63b5538d3aadeceab4d404bd478054f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-d7018f-l4qwi4g6.tgz","fileCount":985,"integrity":"sha512-x91Rl8L7xrixL54H5S/h/x9SZzcHzFdqTIYyXNVDycBv6HYXJD6lMJPjWeZ5rwjzJbxQ9FZV0m8R6v21JfY1lA==","signatures":[{"sig":"MEUCIEw/4gj2paYbfTLx/qM7uer/Y1OKk8h5N/XYtJ08cX1+AiEA/qzRtGbRrJhjBahsDN6UBVqjMkj5P6JKJGoe7A3ToBU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitEVfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKNRAAhW4vhxltlBf9z6k+etBagXRAyE5sadHMtSyJmA3O3QZSoz0E\r\nvtj+Jtz/GllWgGJp+meoDPUEPGV50CaTkK/Kt/h2kgBmuMxXahvFzjKzkJuZ\r\npxwCY64NaP/itMv1AEgvSfqASbLnrOnciHsUj3E3N/O78iWs3RP0in+xnyas\r\nr2A+3+U/B3kQCi0f2Az2xSdpuLUZV9wA6O5MKgP8FVEcMaJtsOk/iPPq863T\r\nvs7OiIpVlQbCw53N/mAO/p+fQCB/h95zk9xGr+Zd9SFtGoHMzNvFLYHFl74z\r\neG90c5jHDnK4Xo8xa0dnz20pbN2cdbd8JzUpoMhQywSWXOa3Rq23eqVmJ0Ck\r\n5B6sRJT6UAvEvpRyHJoiwCjY5umDKyuQLMTTJSBM9+HKmUdApjXlWKvd/8bS\r\nrBe2wZiocbB898BuyOvnh3ZVhBD1yTyDJeu8Upc4wdS1LTPlzIKgWHE17yKM\r\nsp6bN2FVYoNQ5JVPjSowENeYpMdyWSLdrrCiVHYubvCKycU3E3FL75t9GQvz\r\nQAAwdwq6qQcjckK+lskjLT5qAXk304Z7XjsQn9ABIEQ/ou7FbiP/iRAd1fUc\r\nFwWhDl0Vd1Hp29SCZeTOa1qY117p2B8XhU9bh53WyLzeOTov5DouN6eh1oIf\r\nX+kcWRbPs4ear47E7QUmYuJcmuzi62fdX8Y=\r\n=qnA5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d7018fa626010e7da25377ab00917a18c0a71221","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-d7018f-l4qwi4g6_1655981406842_0.8068575765591155","host":"s3://npm-registry-packages"}},"2.4.0-feature-4806e9-l4s9flsq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-4806e9-l4s9flsq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-4806e9-l4s9flsq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8fe58a5de6557a78488f753bc969e45fe442c744","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-4806e9-l4s9flsq.tgz","fileCount":995,"integrity":"sha512-Ux0pLCVo9uLDnq9R6JsnHuHk+U0aRA0vm8ND73K/JYH9gh9ZxqWQHpkuDRUVpjyuo9/4A3MQfDPNKIh7bYGjdA==","signatures":[{"sig":"MEUCIAgCMxInrSwBvCFE2meEsD0M56kBU6tmIL0lIgYNBwO+AiEA9mIUoTwcHkYfY11HAOo5ILzawWpyn5E1CGGGdL9ZJLc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitYawACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSJA//WOcGa5tabCnlj7K2mYaAl15isxfNxE+kOAtMdK2nwUUWIKKu\r\n99DXYQhfMJvSD1GT1nr9Qdeh7tbNDoaRtTYIu6cCiJtInOtlEVB4IAhTAwtY\r\nQ0QHs/wPI128i0YuSDNB2y5LYT2d12nimw9jg2uCs/XDqef6jO8vVPdExoPg\r\nb/DY1X2wu7lYri06pvWPaxWbCIAhzt4H6ebBOAFXrimPid3m1LAjI5QE76Jl\r\nmdi4BLiSCsrCdbI+vLLvPulRb/qwgV5yuVPR9Dq4TedkzabOuFLaqaTkTNaL\r\nsBjGFL970ODNWS9cHibh9wibT5hv6f1Jh9ILgwGV7IzCabYY7u/B5q8hEvg+\r\njmG45V7LJ1QMTCUPLEjvLYLlWwlcMuuZfJS6xeHQG5i2fNTQLtGUwDXrgs3w\r\nNm759sayOXDyznz9iPRsNjDm9cBpcz6gdlEQPrp4BnMgfUbfGHSQB4CGy+oP\r\nYvMZXDJBvIwc8h/gXUS3HRIYHY3G+aIoiUzrgmZmOIcflHUmTmsY9ed84htz\r\nVexP+iWDvWReVvLtlXPDIMbZ/7wLmxIVfT9Oz2zDCAv1sKdD4N9ZXN/J1mpi\r\n5bFqor2UEZOSwvoByRvOYkKnT/A6lx0f+2DGAkqE8Uj+whJ2si1FUYMw8qB2\r\nzeDp+tSpYJINffOw5phiSmS2hXOhd+u9aAA=\r\n=6cmg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4806e9fa1bce0a3e2321e8b30d802acc559eab05","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-4806e9-l4s9flsq_1656063663901_0.9214540355234839","host":"s3://npm-registry-packages"}},"2.4.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"25ac2ce4a01e30ff084f0acaea72542d2e57c776","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.5.tgz","fileCount":985,"integrity":"sha512-w4Bx/nZyFNz4sl/u5JJxduxknTIcZX4CH+Hhq0fTqE8Qfu/lTTT4vl7Llsmdz8C48CQ6DgRRsgKC8icSd/e/qw==","signatures":[{"sig":"MEUCIFPBwXQF3yRcfy9jaH8FY0Ry2NCmilbPFQCSUGX8CCfPAiEAnHKeRsLPgoJGxQZTi0sS3OGINKsNvBP4Arqad8RENEw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiucSsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQwQ//aad+SSvU9R1t2ScKqNv7jrrD1m/S0UTwMrXj8Txj3frIQPFA\r\na6encZuO3U8FfpwQG9bi17615GPT6qFs5hWJGN31+MUC7Dbyb0IbZCTTdacg\r\nFj8l3wH0IMiBOCDQLeZ3HugL9Didf3c+Erymtq7TZQP0wrwdXGgUnZ5OxxYX\r\nQuaFrYWRdm2j9/yzkOpcCDI3sDqEcCoguR7NyiXNO92YCDhkclOTNVxlLnvQ\r\nprQ8dQ35SgmYzVi4nte/D8jzLhwIzAE/iCdh+0jvP8jBcPYOEAUsTPqAS0Fc\r\nFnDzvU99bGZypibDU20Fri3+VGk8t3jyqFEb/8E0dwREY6OEtdrn5EHbFDqo\r\nvDJID98oBZQJwtHp+BCVKqHwZ0wNMQ8HieQainodVt3XNyTqUEmqAhMysF7a\r\nQGBSU4ceSOUx99INlddVan2cbudCrBrFgGi6LoIDfKE0fGgUok3CX8qkOX3/\r\nTFNsKsNAw6sCkfuwO4RxJDjACi0Tr5znbe6NOzOwqzDhOlPCbmxQz9i6RjYO\r\nCRQl/Q97eybk9xoUcETqRzro8ke3uNm2JBdJfxxZiVnl0uUWx1EC9463XjQS\r\nfKUgXODhDjMtq9ngV2+uIJOj8b6PL87SnuWKzf1pl5Iv7AQ635vg1TOE3+OI\r\nBB9brjpENwtf3Zj1lDCPoMSBDn0+Fxcrl/A=\r\n=t1aW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f698a27b3adafed6791872b3c12f3565bd980ced","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.5_1656341676560_0.11542049655741193","host":"s3://npm-registry-packages"}},"2.4.0-feature-c150e4-l4xypc2h":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-c150e4-l4xypc2h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-c150e4-l4xypc2h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f0c37b87907f237f398e0e1e6ef54cb01c0ac65c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-c150e4-l4xypc2h.tgz","fileCount":1060,"integrity":"sha512-FcPd9HtoOEro8nOIHcmQ4QVW32xDbXLf3I0JEegWD9nb2MacPpAxqEZOkNbqnv64lwFzC/rqOv2lMqvKdpXk1g==","signatures":[{"sig":"MEUCIQCHKJcABuCPv75960w+1IVAdF042ZR7ajcyCCRGD7FY1QIgRxSnB+5dcd4GlXW9IXSLEaqjEnzkqmiydVvqFufetLk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1785626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuslaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmryhw/6AsRTk07AltHSP3GSHqr2EGb9DFP85odod9wIMLXUGi8sQDcc\r\n+Gyln4fCDXlcCPwbn6b353mUg9AhjwyKDZdoT1TgHxZOPMYRfghQzAIGSd+Z\r\nsjbZ+V0xASQIOW3alrsky5gdbAu7SB1i7i6r26bwGdu2SM7nntows6xIwmCu\r\n9FABAkSPWV9xfhYDDeuy05lvd4vy5Ne/Xc+a9Owtk9l447URvaowfEdCxB3+\r\nCuu8mjMSMEEW0qN1Delx4ujTpI4szDMRmx2SkWqJP6VwEMpWSr6TtR/9XISF\r\nuCNjqDHJ0FhdtEtLDCtiQOBqUqr19QqPxZs6PkcvHOHFlGGlv2gWH63sR4OM\r\n17I3wYlez9CVr1qIPx9FV+wi1ISfqjBItrBuoGNA39qgXfb1/rC0VusSyrjk\r\nyHyvqBO9e2NV1D0xaMtH/gMOAP2dAJm87TXtbtCEeyVuwpd/lTYNIdBqbtag\r\nmVWN52N8Y46szNMELcPWG2vLm6YyU5/YNWSgVSAVctRU4a+xisDn3ikqmkSN\r\nyYM2gtkGPd4tZ/QLz/pbM8E6Fn9DGMLOCgxF18n9x5bsbCeWu0otOFEoxf0R\r\nqLEEDyJmL1JsgQ9Uzp1pKHLPfC3eLSFTl/BFQLKnHweNx8rIKxovUHPWwLBx\r\nZVXP6qzDFcMLwATj6290C2lqD12EJvbrpPA=\r\n=3VNB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c150e4d521e02c9c288b7105d8d773f764230ebc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-c150e4-l4xypc2h_1656408410136_0.1944901805542032","host":"s3://npm-registry-packages"}},"2.4.0-feature-32ba36-l4y4nrvi":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-32ba36-l4y4nrvi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-32ba36-l4y4nrvi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ca77bc7ed802d23d3fd139794635ef0716b0647","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-32ba36-l4y4nrvi.tgz","fileCount":1060,"integrity":"sha512-87q0FSci9kEmAfioHuxVD6oXC7a0JmsSXnyDR/BWBUb4gVdRZd7XuWT7AcONCGBfTlZS59EksdOZo2T/vOCE/w==","signatures":[{"sig":"MEUCIQDp2PfQoEOGF44ckqeQ9Uxvb16WY0zqld3DinUGpxNlaQIgYPXUt8+mmHZw3Q/F3rTQJbvNf6UAj6w6S73Nh66yF6U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1785710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuvBfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoS+A//f+p8qRYkf6iMATRUnZV1XbbnSSk4++M5DYJ7wBFk6fCqVpOf\r\nqjwQ3zqnMEZd2AD6XHmFGsEXay5lVM2BvGKLXViaV/HePxTmkwRBtmmJQERu\r\nfnTSFUXB342SLfEw6svKtrtGPck+c1Jq85ksRCq3ZQro7XSsLBE3I1hDTe3Y\r\n2hKW4HiIXRYU2zfg45uoqWZ4dobDA3/XOdxbx+nbvCF0pOKRB/Nnhx1Gx58O\r\n3VhDRQNzay3bTuU8o6YBhdfmx4Qrot5GsRLEmGwYDuSIKTR6JSPmkfIa7cA8\r\ndMSpmmnaksjmKy6vuoB4d1NsyPsLEIFJ5JcX17IQ+y8Wt704Yp+wSmRZc8EI\r\nZcRhDXX54dR2i0T+92+453lQzMqi1eF+ArtTNNrqHIa1NyQc3iS6BzZeNJ6F\r\n2KTKh9ky3Mu4PGaR+zoze1jVpLG1UBxtzyFnchSjmk1KxXb7DUOiosiGp4R1\r\nat7NHaEHe0tKljsTCHxaORtWthjMCke4v8YAdLe8NWBO9KQ0vd7Wb1wt1sWo\r\naHarBN0e9BEBsAi/6/ywUQqPsyKQMvDS5N3gfw0sG/fgI1fLg5Q+UpHAqwdl\r\ntiPilVjXjT6uk9xM9DzSuf0WEB2RZNoiB7Typ+a3egB/jssoaWZP3zHun9kk\r\ndo5JhD+8RkUE7I3uCvJH3OvyKo+AvOcYNw4=\r\n=IKtS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"32ba36f130b1795e15927acb50356931c73dca5b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-32ba36-l4y4nrvi_1656418399309_0.5385731521049302","host":"s3://npm-registry-packages"}},"2.4.0-feature-f89fe9-l4y5nj7u":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-f89fe9-l4y5nj7u","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-f89fe9-l4y5nj7u","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"af704cd31a2161dd79db7e5871c007c81879b06c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-f89fe9-l4y5nj7u.tgz","fileCount":1060,"integrity":"sha512-EXQ+U5aAZB23WgPkcJ5pGxGNa7s0S8YJXXUptRVOztI97w+xOpmO6ampXw4Ch9BXXWpyM1HpUBvxCjDcDMnQSg==","signatures":[{"sig":"MEUCIG1M5DIgm+69fdCSWmZ4mCBsnnMEDkM9za+3ETlgSLb5AiEAuk3oL2TNKtqjNxgB2M13/LYVVeTc443wRyhBylzflds=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1785626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuvbkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp45A/+KpwTRcCRkUjbaOX0+bW410gan/euJ8+apY6judbGof0O4jvH\r\nmhQLrLE4ivLGJqwYKw66703GlOB4JVgioYkZqUsm+NRlK5IChrnqhPIwSa3z\r\nSMzUh/4P4LG9KyvAdAAgtUkoA8o52k+ULdtXllkg7h2OM2RWVSkbSLTzfHxy\r\noMmVkq2HvR1Brj7zykTSMvhZeuxdE+jPtWxYOCsVZjmGJlZmjGBjWi8kz5+V\r\ns0Ibbx8g43/HS+aj/pgJMHOHIQiNmZSuMkT1HTuYUvYqY7vPOzuJvSltyL+/\r\n9wtNbS5M5t9HbL93ZAVXgoETvt+ScfaRBPgyQsGCBdQZTXMqbgZGdtWrQ2qx\r\n3WCvlPRgggJHMeEkSp/SMMOTCdYg7FGQDaeKbgIy19m6pw39mOU5FHokHizS\r\nqwQe19507FoAiH7eOK3JVCQ98wrTaSOlLqhL9pU6AjbeGsyZL7zFH0HlNLHx\r\niGNdgfZn5ItOqhm4obW6L92GsuK1rkmaoqcj38EMmm7NOeSqb+oqhKX2z1Wk\r\nV3wYIn/kZpmfBs65Kokr+BKmHvudD/3RkDI+fdm4Rcgw2OdFnpEOGLcayStk\r\n+azyhK/FJN99eiO0DzZDJabaJSrNF8XGcyCwvyW3XS4B5zJJl7Zbr3ffA0sX\r\nZcGxHndYGdcETlrxMyhhie1zXgWmaL9Usf4=\r\n=RXQK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f89fe9a939317873f4df39b8842016601287d720","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-f89fe9-l4y5nj7u_1656420067817_0.13939603314214222","host":"s3://npm-registry-packages"}},"2.4.0-feature-3796fa-l4ybuh48":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-3796fa-l4ybuh48","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-3796fa-l4ybuh48","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b7f2b355cc6d7c155045aa1af21840aa26fc77bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-3796fa-l4ybuh48.tgz","fileCount":985,"integrity":"sha512-XSMIdKuli+cZlH6+ftwjkm7y5aGu7nZHZofAb8gQnxdONQIJMGm5zTuBDa56v4u8Dhi2S6/dP+M/TIz9oYzBNQ==","signatures":[{"sig":"MEUCIFwCHN/MmZBUQxLm+g5u+5CTQEtMeAr4d0CoqnX1GKR3AiEAn9X1B+8naoGhVvP+Bq7gex15PEAmGKatUzRx5MFFOyE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1751006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiux9pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFqBAAgkR8EmGogitNhixL5VzAKrDikxFyMCddiacxgpuEOpahoY74\r\nU10+IIZ5V5zIS8D6mMbayuOK9Oa7HFWl5Ple9YKhm+B78roKLqnyYAAw+7DY\r\nr480XxzOxs487BPxCyREfJsR4e4rabg8qEGbFHkyDAkAORuHXFs2BW8Y+SWn\r\nA83mxjfPU6es74ma3NdIAGB5aRbW9YvhcG1MtyXZYDj1f7/Nzb6CnSvXRlTi\r\ndYzNkHjGCL0zyY8BkaIP57yrK1qEI00U6Y4pniG3nMEiUKAAUzvha9UhnIrF\r\n5wQPmO0BuTjfoAL4YmjlQ5qB0X2M2bdGrIHrn4L/1VLzVOZb9kBnU1KcCmqp\r\nLEtozTuzxbl3V9Jbyx74uHF+d1CkbH5YiKsr5mp7PB4AsYfZ0xvx8lrlLWT+\r\nJr65AoP+3ZSdL0ci/hoqeuuRQK2DBVg1nFUastL2gg/8K8yuWYMHTEWNny8N\r\nLCWLR+Cg2x2gLv20yIOdHQDlQTvprMxQ1rFa6t18ddOV+U47rZ3wws8b/FpG\r\nsvKo1PCEdEivjEETqL/WHepW/5LBvhJj3fn5KfmTUD0DjtjTjPHFhnjw/0Dw\r\nGVWFCFr/LsCfhxThUwX913rtHCcoiVzdVYhuFKaBNkzsyeWdlzxnc7BpTxbC\r\nyIF7gkkNC5aM+fS26RtdqSL3kU3IyuUeD3o=\r\n=Jo+Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3796fa1f8f078e4880385a142d7dbab77f246eae","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-3796fa-l4ybuh48_1656430441257_0.8828861297733783","host":"s3://npm-registry-packages"}},"2.4.0-feature-f91285-l4yc71a9":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-f91285-l4yc71a9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-f91285-l4yc71a9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"befd282764509443e5ddcde501dfe8e4233b5bcf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-f91285-l4yc71a9.tgz","fileCount":985,"integrity":"sha512-r9YrQVW1r1Uu9gBRNb57g9GNRHbkCwXqhEtg0vz8pXfvfH972xhf3+MwXH3+x7CU+IUJBr6a9ENa8GQLHo9eDg==","signatures":[{"sig":"MEQCIDqArw4FbDAe7McnSzYXV+GbIAPj/kFnc5Jm6QA83rypAiAToX01APNkwreMxk+ruqUAQexXn7Q/8Z72vGhhcC4Zfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuyGzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaOg//X+Z/fkBMxdvTSzL8LqiNrAH2ahVuVAdLSco+/+AiFbDE6EO8\r\nSB9c5n42fRDepcgi5rNCDtmSrJ/sW3mjYfkpXdpbfddkMPUOYsDt9uSQG+XE\r\nMOUnhUvzr8dZM8oMk1ShzaBJ5t6zINllM0e8eWlwcj/vUtbE7y2np6IYyOHB\r\nJqzw4MUU3uM87j/sx1Uro1cPmX7b8gnzlIyN++rZVOEJUs6nLawS6QYbGUq9\r\n1e5Tgjl68RTgL5aKkdvcWDFBtveHFkfglGjMF/OG5fjQNZfqT1lXBhXmzHsJ\r\nBhngcSsHxfbiHETVVMF801bFTlL8P9WawkLJ47fEPVWNLDaN7mSVgaUJOBhB\r\nusv3pqsEu/zgaevyi/r7dMb0RuyC2iovOG6snr/PBvDQfKHEl83gDPscR1sx\r\npRmG6jm5O/tSjcgSPH4SvB7HohiObGH/HTXVXcz0+qJm4Ri4G+maPgnNJlee\r\nAjS2LRbqhrLHwqqNBkiPyJa0RlSwchjMNSlXgmlNNa3o963X57hNCSBWRrpK\r\nnzJ8/zk1DoKRod0HklacLKCX+kJ0Zaey+oJcVC+K0Zb5zzZ0wkkgfo0/H0DX\r\n9ALfOurFLJTvh99IY6AzUyOjAUJ5tqYxq6F9JsH3bxnp0Dl99ptZVwSo+lUd\r\ncFxkuRVcLVtBiUWgkXiwvFcZff7F6AgqhQ4=\r\n=btwZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f91285b1e791ec9a986831ed87f745e7be14f75a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-f91285-l4yc71a9_1656431027014_0.6648657526984636","host":"s3://npm-registry-packages"}},"2.4.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fc02f8e6cadbabcb74a60a15915b27b2137f4420","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.6.tgz","fileCount":985,"integrity":"sha512-lny1uwMmxMdqcqD4KQ6ZiHzSC/qoFCZskp41WTiBMSlK0mRF6amvAsqlfFHQefYcBR967UcKrFU9WQEE0yedQg==","signatures":[{"sig":"MEQCIFcYSN6+YhwjdX0DPYGDDvTyNS1J0KS8cM0HDRzhAfxyAiA9hyzxnlAo8JcXkHPMP01T+Ew4xD8K9c5/6V7kQyeaeQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivASvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBWQ//SLcMOCDcyZ/5CKOQtB6AHVFMDfFKagq/UF6IWrd4JaN+9xmE\r\n+Yx/s0+dg/+bzuTNs/pcQov3O+4umhD4J9oYMbWdavyNw1kINv2EOyTT562k\r\n0E/+35gk1zCJho7VGOmkqEnfN7pOKiwSj+LR35LwpU2C/VdGDP4Q3pm22QHp\r\nm6Fx2jcCmorTCGZIat/HAcXoBf1rrfURDq4zUSsYjpw3MQhPrIS2PNPbnaXi\r\n4HiLDcJt4UJ6S//pc75OrHlXjvQ2VNkxmkVEuZjK5Gz6GwtpE3hLJo5Aw0za\r\nk5gGdJEIaGFcjO6/8iBGFlbleksLJh0p0rbLO+1jJme5QIBHr0h53sIy17tv\r\njDib+eZe8kJ+lS+tPrMFgaM2Ta3vwMc2GJooARu2ZXoreKJqAIor2chrqqCi\r\nFeTGLrPmx/f7D2O+G997cl9yeds/BWE6enqn5+Zhp3Kk3NJJzpXjsn4VJJ3e\r\nlA735h8bVLv2FG2Qxp/qNbNZCUrSDBupAs+RNXtFmE0eLo9hUn5/gZsVA+Fz\r\nA1KQ55CRs1hid1aNxlwLAiP5RsZwUTy9O6djLdM6tYf06wyDZTjUobVDvH1V\r\nYzdsmCDMBXqp6zJ54eBzxuSM/P+anpkddEP4IIfflQaqscXskMVgVNUM4vo0\r\nRmpLSUsv8XGMbH28ersZJ7XKIw+B7TVOzZM=\r\n=BzQO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"80fa881fc5b0422b6c5aaf9c579b848607f361e5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.6_1656489134936_0.865661031441993","host":"s3://npm-registry-packages"}},"2.4.0-feature-7caa05-l4zcvscm":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-7caa05-l4zcvscm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-7caa05-l4zcvscm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5392fda0a29839798208a90a2a44f3d8f4bd6efc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-7caa05-l4zcvscm.tgz","fileCount":1060,"integrity":"sha512-v6j3JLt+nOcvtIawvTQUiSF4V6h0WqlbEimy5vZPFfhDdzyCSdJz/DjQPFJi3OuOK5kQb2KB3InQB3tlFX+wYw==","signatures":[{"sig":"MEUCIC2J8lyWmFGsWh8eImEfNEYxr7Sp05crIlrEZYnlE6rbAiEA4jM7z6RR1PFJiwfgB+5wXr/hNc7TcupMDnoB5zulw5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivBJlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfvhAAklQ/rbBbs66WhdVCBpWOkhkrh0u3s75NvL4u3DpR4j7PkVRv\r\ngIqDl6nj5OBlf5TD2xE9pH5JamKBJrCiFL3iX//u0rLpdciHdbSf+qrFxaEG\r\n2BVWV1GjvWtpBv2AVJ2ekvoN2dCcaBImBU0phIKDR8in9b4JFOMRdxmZ84i/\r\n9J7rlmag7RX3+ACeqb1STjXhx4v0z+hKYVd+AxoQ+8jdG7RT0utBLyhSJYg+\r\nkH2MbNtNP8a0X4vw1i36/CeF0HdunpT0/rNXVSPoKm3VdJzZ54pRTh3tjm8P\r\nZPfdQwkUAhrKgd0A5p1FYCyQluIwvVKI8gJCWliJf88xBTrNxk6+smLU6K9t\r\nGlS36oAfIwdAu3Xqc923wSGrs7W7AGIxqjAHrd3bmPUCMP4e20vVvLNd5a3N\r\nHNruDjtpv1YGlkQmL/Bz12lKVMoUd2H3k6/+V4C9eYa+uTHuAa2jdaq2Vyt0\r\nOzfjsi3AXIWB9HeYxv7O+Mr3uSkiEdVX3Ln+DQvhNFs9l8Fcm8FIZBFtlR44\r\nNuHquBbLOBEehdgC4T4Le7Uj42080lHKmXo8sU6uRYLIDTrsybhJ4R/0w01q\r\nLtc5ZVZHAAcaHl2pCsaT9GegEfC1Wqy2iUzNVBt7XUhTZyXU7FmMtpe6IHnc\r\nL5tOZfwtg373+HuDaiJDJFQr6LOZvqPZkOI=\r\n=ZnA/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7caa0516b0045560e3a0013f44255a264ba1f11a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-7caa05-l4zcvscm_1656492645442_0.40804103968450756","host":"s3://npm-registry-packages"}},"2.4.0-feature-9c924d-l4ze99jq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-9c924d-l4ze99jq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-9c924d-l4ze99jq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f7a7d34a35360a25679492fd69c2fa3c5a0baa20","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-9c924d-l4ze99jq.tgz","fileCount":985,"integrity":"sha512-IOvoROHLR/h7wndM4EXQ5vSB1CwyeHLRLT67KgnAEPbJYjO/okLGEcGAxkd73PPzftz4zH5+SCpHUh+laZZeqw==","signatures":[{"sig":"MEUCICmX/IiZYdQH1EE2Q2PV9/6leocB79hykh/xmJqnPU+8AiEA1jGvoZslnWIsYXBDVRadJG933MmfNB1lELyFsZ3b2mc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1753802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivBt7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoD+Q/8DuCnb88f2ECvDzPyL0dVpuokvDS2VMzqGlks/NOSCdyk0Fe+\r\noyJyDvqVY/vl0k5EejzaGlDKzL37oeq4AzpOUAl/ZZHjmG7e5JbOMfJHjoGR\r\nFOEZ46n8JfJ64XaPGtk96eKBtdk6h10MvSN16RYrPqMAIrKjsBsRfrcoWcPe\r\nJZgfI1o+qsrjEgHnPDlC3zsG0+48uDT/v6N3XuzsSjyKVIEajP6bzNUlksFY\r\nxv0NNG+Ub8lLPnu7K7MJ4VXZbJXKiYn2Sn8lgE0MD0DKwJ5rBkYrIEQPkzvs\r\nt1lKee9zsU6w69ADVzAo6rvw6hab56t5g6oSsvnnBdSSVpGTJHwZ5P8MwMRN\r\nmNWk9y8ADphOZ5AWVsKDLaiqSvsMpW4wetAm9ED7ncNbdgFM4ul+pBYwIFmR\r\nGjbe36KpNIRs4ds9Th9XlMdVhkW8eIxB5oJTRxJDAc330L9UDgcOHeV0ndXN\r\nzJFvxPIUmAauT5f46WPRtXRLaFyjzNMVn1HbOBaKc+3mWo5AABcP0GTyrB0o\r\nWZx1osODto8LPhlq8fHxhQtFA0GBfvFUzped10KW/RbtKLYtLubVMd4El/cH\r\n4kMXSbyJED4/N0eJomOqICU9o2o4bDnBKBOHr9+8PUl7X6X5TDj0CYIHgvTP\r\npILiU+h7nTt2QUsBkieo7WoDhbjtPj+dPtg=\r\n=QXbf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9c924dd07b1ae61765f67a820647aae3c1f2465b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-9c924d-l4ze99jq_1656494971477_0.803738741733157","host":"s3://npm-registry-packages"}},"2.4.0-feature-6472c2-l4zf795n":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-6472c2-l4zf795n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-6472c2-l4zf795n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b8ec621b65ff4b7567e27e049bea34716d387cc6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-6472c2-l4zf795n.tgz","fileCount":1060,"integrity":"sha512-7Xw13rBicufOFT4iPCYvBtN20WEE3Uz5SWmo82c5zzvCXIzH3vFoi0vpyJzB9aJQ/lY8yoD6gj7JjjABBI17FA==","signatures":[{"sig":"MEUCIApm0S3kUYIWV4vlzKr0JfIC8L9q0vibiXMwaNWcI56yAiEA6ZwhyViFKFAlLMzFt+m48g6SRXgdwBPDgGP/fd807QQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivCG3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpuDQ//T77BmEHu8ag+KJrObMCbeVDHRVVm4ayhPnWlJPP1G3ZLrp9s\r\n10zR5muzAbhu3rr6h382g0Vf6cqws59MsVUst/RH1IL/0atjB9WtdbsckaZJ\r\nTxFadMW8IZlFr/Ge5uBxp5J00IEs5ZGrDkQyeYdHxRHd+nTTL6jQokoxU1rC\r\nlf9WQFiEj6NEmxL072taaF33mfsWI0waAJus4m8pbnTSyvcvdwYQd4xF85VH\r\nyryeMPb9LhdyK6xxjuS5dygoL02RUEBuw7ENeUme1qHT34HE5XNRtuudi3cr\r\n5Aq5JMfv4I7eIWzAv8IOU4zqhN+B5KcbKN9lNGiquY4Vcio6uwCRDUlw+euw\r\nRIa3EnZYF4i3VwYWI2oJFdDzhnDLZi+kJnFqpRYw3O+6nRhg/4X7e05vOkNE\r\nZppmuTWKapTmvFMl5Ff75pDQWJkiYiUklruGa9DVwfWVOZsAs3o6vsE2twfD\r\n/5mlnbwJ1NfV2a0KabmLNm3I4dZ0N5ijlWIoVirEZhz9esQ3zSW7iTIiznnU\r\nLPPAH9w+dTxXvmtLKl9LyDZlxgmyWCDicnsD0XGBHgPleSmhxGH3JSVZvlqk\r\nxkwoq31/NYMPdlbQ0urJYzcyLif7tTlAXGP86s5T/qQH0QqJvOYMYIviem5D\r\nx58wcMq2fj7PIHb+g+xjzVr+rnnz7tPJCZQ=\r\n=Mt8u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6472c28cf08540641671160999c98a484b18f6b6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-6472c2-l4zf795n_1656496567171_0.507471008229831","host":"s3://npm-registry-packages"}},"2.4.0-feature-b2c417-l4zfhh7z":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-b2c417-l4zfhh7z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-b2c417-l4zfhh7z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dd0f073ab516d0d836cb4adf443dde3d77d9fb16","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-b2c417-l4zfhh7z.tgz","fileCount":985,"integrity":"sha512-UXwLshBuN8BH/IuiULHLOmnQuXWL6/A+BiNqVGjU0+XaXmDHzVtUgtazZ/rNGQs+moLnxe0FSHSAzO5EsyDrqg==","signatures":[{"sig":"MEUCIQDV8EkHjK6nN9ibfgybtnMCXgOw8LzmGAHHM24LJMld1gIgCUu1R5gATLkqDt8HtZMLBExD8kyJ2CBJMtv3AD7OgqU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1754033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivCN4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVyhAAoTbURQ4hULGOQICZgvkypGvL+Vsy7O91IMa+x9KhcPmPI2u4\r\n3XduNH4eIjPBXPEpJf4GBUbvu23EYp+UalzuT2ftDaG57D+SFuE9JYKyS+5z\r\n1vMe4oLKLbw45xTy4UcuUb3CmQZHOxlOK547sH++BpTaF59B1hXsxlHgSnxa\r\nOyB5DO22Mwu7JBBapYVlba7GRGCztKaGyt6oGn7Zr1pBCFN3mcdIh2VogBqD\r\nMhEQMh1hz0GDDiTSpdZU/v5YLjZu52ktWoVFYQQUXfF3/xlUp68qcvhJuL9x\r\nZdoWexNkyMhXRyetTs2t+n4zZPHITfOG9fzTFO4HBbzUiGnsVE5SG0zteOya\r\nYBfMpnWYOVclqcNO8fkVLJnosWX62Q4UkkuTyrpErhEDsddVwZ6B/MAk8wXl\r\nvY9NERnE5HzxFI5vE1oXr0TKIYwXTe40lOL5vHL6NBXVCshrKFGX3KPNSTDs\r\n3Uo/xJT3K/lKtdTt2Xb7mZKghriXYdj+cMcLwAR0DRd5DC43qTkOjm1hW1TI\r\n2Xexq1c3SrN8V1pqxnm2kgwAC6Iq4Krp6EMgFAqHcGytJ27FvTi0pOdHn+IZ\r\nrEd/SlY2cBws9WDLVQUYGAbxUD3KWkYWVOmpr+2ZvKmFbsylAWRlvfHTLtH/\r\njtEMtIY/MUMCvGlCHobb6UY5ayCzciY9M+8=\r\n=vnRF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b2c417900706e395421832a36e11b010d831764d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-b2c417-l4zfhh7z_1656497015900_0.08107896919938806","host":"s3://npm-registry-packages"}},"2.4.0-feature-4847c8-l4zq7jto":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-4847c8-l4zq7jto","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-4847c8-l4zq7jto","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c2857efff6a49113c811119c6f1b2e35ce716644","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-4847c8-l4zq7jto.tgz","fileCount":1060,"integrity":"sha512-MmTl9tCaHNkjHZnPbTRxY0l08pm6Lt5lWP0vIzj7/UaEDA0tLKS+N8O5Of7JtMXp6r68nDIxwZrFe0QBqxVtYQ==","signatures":[{"sig":"MEQCIEOONT3QQ1Oc0WPZ+gZlK3LqtQZxyfl/KOIczb4Az53dAiB1DQdrhP7HNW/9L3Dq12nGcogbRGWE7EaNUeNztYGdJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1787659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivGn1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp27g/9FiW8wWnfCFqUePAJgPDBYMFEKwZzcudwL4yMWhGp0nrT5+rG\r\n0CVpxzMaBW6se4AqJNCmKs8mBQ621ojEIfwIbga7S5kPWPeasChEfItrxbWy\r\n47t2mNdZthiAV46ZD/s6/C/H0Icfq4UGDklU9nLxY8oyILHb3p09zGCyqmVc\r\nNWODexcBZCtSQocQ3R06NBSnb/lpRTIDUgTuQ0cNewZg6EaC9D3sthfDO2wq\r\nWXMDMaIuGFIlTdMZvUk+1X7pQ/AX/pPA/J4Lyp9w0jm+L6v4veOAufLgrUI/\r\n1PzZVo4XgJOlhOKVYdCoLq4951BL4unDJouiysZvcouPJ+zC2PCq54RIhxPL\r\nGoQnry31Uct8iYFgvKIja1WnKpsyXUPAEFWw3JWd4d9xN6fd8LwnZXW+SQdl\r\n1KAX850fA1CkYVxYRv7iByNigdZEnun7XnBihDoIJzrdM8KIAySkD08mVFvo\r\nfeKyNsn2b4RLlo+4pStMgLbPrF/rZwRxM02WYoFX0CR4JKZxYXc9a19lrdn/\r\nLXUPLXojKb4EZB+jQ66GZjiSOT4/boV8r0QtM7scDwj54i8o+OOPUpMxIfWm\r\na6UXik6K6fvKoA6en1TzPX9aryjqMbM54qWssubpOadTXFTnLuJ3040UN/Nc\r\n6EwmQQHrsJKTrZ5FIWwWq0GP2cIBpHZ1aA4=\r\n=JpCD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4847c8828ad2a854db2f95afa8fbfc7fead9744f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-4847c8-l4zq7jto_1656515061222_0.10890091505741584","host":"s3://npm-registry-packages"}},"2.4.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"124ad019fded46c0e54b10ea150f09407c59546d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.7.tgz","fileCount":985,"integrity":"sha512-iOIyuuAiirxewGZcj++LIHghuf8ZyY9zD3mwYXpw7StObl2X0wAoi4xgJx2xrtDb+FKUaK1bCvroVPrTmNcRIw==","signatures":[{"sig":"MEUCIQCdAw3Oz2wT7R6kSoaO9bBajgsLVwdgHUDgR8JazgFT7AIgYs8AhnxlQlZMiFdiWp/sswaxf6H+NQXhunBaAZiMots=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1754017,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivV+CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMGw/+NQvA/jEqrsbVVW9OnB0jL59G2oRjIjuQ1MFbGYKIBhdpjY7S\r\nc5eGR56/uUxwl/Mzq2nlEgjrXvJYeV/ruedElq8ca7r/N77tgVFJu949SLrE\r\n1IDq27JkGDcn7HhwPkmAZpDuTtfkF2y8lFua+UIqTRfyotW+Z6IHD/PFBfDv\r\nLTUt4yk8Hazpuu+GbAP3IKRToQk/oe5jOkEwY0tV3TlalSM39AXbV3WWqZQ9\r\nAAjbrWkc0ILrNVm6JeUA1nGKI9OPtgSOpBH86zlX2Giy4hwtnu7TZBHMpuov\r\nrve3rTYwlBUlIGHTInqEygx6R+jmLkDHPGGqGrRrsi4RuSko2Q3jLUI+8VT2\r\nX5LZZsK2FW+ALrkBWJJ9uY2omYdsT12tnz8u+KLjNjm9SlI3yNI/L8zecLf3\r\nZTycZw50JN0Hf6kc0g8+lpEH85vx+jnzgdIX7yeA0zTR7GGM9kkVeaI341m5\r\nnVZZ197ld0wm++pR2ot6sSQxCnM41+3r++gXpCVUMCMoQrI25DR6dnS6hQW7\r\nX4cK80fMh0qwi5fLQzNnpGrXiQQGFGJ/01KfxKF9oIO6F7c3PsoShUJucmXQ\r\nCHF1LF+mKEMG/ojMSjwZ2ZJke8RG9GSvI72g5K21uFa19hlvTR01u1PwwL2g\r\nlmH4DJr02VSWXcWv9Eun0MLxjhVMPW05Q6U=\r\n=pQt6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"59bd804174164a2d8da130d69404a6265b48ba19","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.7_1656577922416_0.5323409933643168","host":"s3://npm-registry-packages"}},"3.0.0-feature-22fba0-l50rt6mg":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-22fba0-l50rt6mg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-22fba0-l50rt6mg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"680c7cd40590017a2b39f22ec92ba7c4be50bba7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-22fba0-l50rt6mg.tgz","fileCount":970,"integrity":"sha512-i2yMDap8IY2MKTh9Eb8Hhen8crJjJjbJ3HL/g9KqfOL2jF5jxObmYKwubiQ0veqDQzUV7QoTQlx+2oDZsXZ//A==","signatures":[{"sig":"MEYCIQD3oZpWqn5xuAbiTggC2A2Uma1rWUZv3IOPta0y+JpSZwIhAPjqgW6j9Kcy/e3lPD9sE2O8lIi8ZyrYrEY4+OEXat9B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1745946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivWCqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYvRAAkhsRpxF6rUwUnFIb0/r2gWlgwdbiWNAgpLXw0kAlMZNwS3bL\r\ngOZof0a6Gq9c2YkUIBCxPmj25Y1McGE3wLn5j3TxcVLDQAfrLlH4L0wJ+eZj\r\nnmBJte6Bjg9YM4MTvcPJBMnEWsKQXEqcNS823K3/Tc4OvXLGHZaxUzpivIU5\r\nGzYepiLjhMair8ewJeL5WJ8FnTt+QuBFGj0Ye1uXgpJ6/6GPhrxTyX0j6QtY\r\n/WGqRIletf6bOb0qaXhNS9eUXJ7gYtkGCrBhhqUylZUM8fZvMw555vNmVlz7\r\nKRGCw7Mcd4oV5ixGg0f+W415WDZY7VwBQNN2K6r3poK3yTJz/+ezOefhbcd0\r\nmN5hWfuk1aOrtiK2RikPB9nqR7LmyzpP3sVNQAAwSnTbXXw6vWaSX8IUdCTU\r\n2ITKPFFTH6dhDimEVaCm9IegkhRf1mExcLw3lE8rvgaoML3JUA27yyYo0kA1\r\n69n1amuxKnp/3Fb9HFYr8M86oUfaPWmC0NdDrbJQsEqVlMgCVXpVXRUNONZZ\r\nNudqjRYKtq80FkNqyT+ymaxpC9qI5PKRxdcPSRjjfMxbtYW3SXVF5AGUAd3d\r\nHw93kmOedShMzQoIOZWy575abCaUqkqGkONEwlv8doyNhHVyu8H1Dt7oYSqA\r\nsBEQ4/4W9ndvHfLUv9fBVJzhx72qu68Ps8Y=\r\n=Mphp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"22fba00bc3fba01a817dbe583f68a152bb947499","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-22fba0-l50rt6mg_1656578217879_0.7386934376959295","host":"s3://npm-registry-packages"}},"2.4.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4c4dd35ce5d3b1367b5e8fd555ee7c408ffcea2a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-beta.2.tgz","fileCount":985,"integrity":"sha512-Mo4DsfDlrTFR8TZAmGcxteQmZkX6UH2LlJwDUQQJ+xLlV5XlL5UJffv3s+RFM4nkgBt89xoo6pqytMFrcaYaew==","signatures":[{"sig":"MEYCIQDsDCS6/lInRDZqBtGz+c/8sgsdqoDOUR8hfLG5xyQ0rQIhAJ90kZlUM69yZUnUwl+xnqh6iP4kedd8pdeYDVO4rKor","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1754016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivxQ9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrhow/9GIywBqptAkXvHOjJp3DxlLt/O7r2B2EbH/OuPIQ61YDVR7RC\r\n3OKlO5zsiR2ixFI0Y3uEhJCe2FHhJW19hpu23kaekHmTcexhGy2iDVqo/I5r\r\nLF/6JNMWrPi2FAKKLtgMYaAdH/d3zW8mkRlSYncS74U5OwsNE+mp6tp63rP6\r\n8QARjTr4cHW7EwzrRcvdMh81hZBViOMg8sStnTV31QJJT8gK0Btm0mBTU2DH\r\nFzfodMMiNdvF8MAPQQlQux7AN8Bg7aVSLAFT5R4tExiREIXGZ4+mQGBEYjrE\r\nJheetV+sCev8lw6zS+4n2mzyd/59fOc9/71v5ovG7hGbpJ3X61eUpPKMQkAE\r\nhomE3xqxkobt1rFjVbSBQ0Q8S7N+JxixB3W7W76XcNK4/VEHfj4I9cVx0hIo\r\nif1qFO3cXaNdwTPhOGIhkipCDlNpbmzuATR0bXGgAeSmdrH79hAiVWBlCAMu\r\nGD0trA8/li62R67ylXeFs4JEwypay17j2ohMrZSUa+wfQdZBw3KrcYg91ciZ\r\nuwrUd8N0s5qNvWB6vQxFJFGay/Puwa1amWnkuczlvBmLtRepKqxqIyytDIhp\r\nmI8G5UhS+7LznrzyVAn0zexG9NVMbPH1DFEnU/xtduo03ngyMCJOOZj8Bv5l\r\nMsKlwvJ1pbHH9tglgOLPpHXKY0j8JQnB0IQ=\r\n=fwTE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b7822462e4a6654295396a66813ce9ece0ccf45d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-beta.2_1656689725662_0.8941555068510225","host":"s3://npm-registry-packages"}},"3.0.0-feature-159b1b-l52o25lo":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-159b1b-l52o25lo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-159b1b-l52o25lo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7f29c6cecd5e28a7a42495e5c064e93b5690e638","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-159b1b-l52o25lo.tgz","fileCount":970,"integrity":"sha512-UrygcGi64M2z4+cMJVhi5YRTwXPEDeAGOHDcSW+PHVMVWbimvX9Pc5yTKEsGdbWPckCpyIYlIw0v4h0W/3tWrw==","signatures":[{"sig":"MEUCIG5/g9Uh+glpces18s0L8FeZNJOKmMRkzzDthwCPoeKvAiEAqqyluE/lZyK7peLZXYYwstJ5PPOEcUjHLUxhrzzGj3M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1745946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivyBqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoachAAg3Oz5koMZALgIrSnzR+POdJ+iGZfv15qz5C5zTV8P4tHnxN9\r\nnFoqarT5NC6RFQVflLUagLQUqqsGamGqrCEFGxDSuF2e0EyVRpTSU+pN3tGw\r\njYSjuFXxa5d2dDIj+nFFdbm/iV1NXM0ViGE7+wvMfUKuicHIiJ6NThhT9Bwk\r\nM1AaVceiqRC9tzPE4fCaHO4qtjZ2TuJJ5yOgcl7naSo4FU7SIrrSYcV1VPh8\r\nQWpZjOoN5tipbIpaAE++BJ/k+x8/D6z1+Sv/0h9tPwXLK4WXveuXny0jbb/S\r\n8uC+3OjRJXftLyauYLn4UFiOOMx30PamI5Id/f0TAiB74M9Q0746x5lpga6y\r\n6ymgCTIYrlNC7w6RM6Zf539mVYjhPcfeTaUbVE6kx5l+F1VhNDGsN57dIyQD\r\nXexyLxL9jopciK2f/Hx7AXdi+DSb3lgd0hgqltpjmEqz77nbO9JrY2zeJvVt\r\ngbKh2LfOF/tIxWMx5u7RBlUEJbVFAhldewqLLpva6jjlkDpPdNwALT5aNx3y\r\n/7hIQcdilWP4E+tJuKXpy+xFpk2BU2mCJ4EXHqgc6dwMDsMvl243g9hprS5r\r\n+CXLLS+jpeL5hSBc/bEpzUKFuhcQuxn6V6THxUrwTIMEbAOIL1JgpnKMJdyC\r\nEtVU6lxSZoQcUJiZ2UyabEYiVXUIa2IhrQI=\r\n=Ksfg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"159b1b6be06e6561025157c2fe2b86c8a5114a66","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-159b1b-l52o25lo_1656692842704_0.9290126581030462","host":"s3://npm-registry-packages"}},"2.4.0-feature-df64bb-l56hbwsk":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-df64bb-l56hbwsk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-df64bb-l56hbwsk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a8a3726b836a93a43439235dc6450dbdb4444532","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-df64bb-l56hbwsk.tgz","fileCount":1065,"integrity":"sha512-CGoq5MGbzmksI/PS0lB4Akbs9uv5lbALRyvivyD/lXj6osqLH2xWVO2F0fR+WqnOaOazFsqh/Px2Aul76xKZEw==","signatures":[{"sig":"MEQCIGPRXpV53jlU9MCEdeJAlMFyjdNOPHFwtS/XWZoHNPmWAiB4AFHrADWJN/0byuN+ZTVaFDiXALUcMkm2hZ1oN4a9hA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwqT0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrk/g//Xrz86AmrbqzEthZUQdPiScogtTsV5h4c7i7N3wsI0ku3ywN0\r\n/F+5fZ7Z+fbke+L1rFLKfTnTJiBF/KaIopHdvBF8KIYxE6CA9lG9NQqx1XCR\r\nCn0yRLN3nN2mHZi5+1ZOnG8sC24+Ezdel0OuttkO8Yd1LKGcsNykSbbujIcc\r\nP7DarvHZLEvAMHcwBmrD5rLVUicSMg1y2V1Y83KOx6yNpmMboI3/gwgn+tLx\r\nBI1UgOg6r+yYWT0RnHMxlo2sG7ieVAqr7qF06ASpBeV+vrAtLsrkxMYqBCIg\r\n9tIklZ+TECEoHriANRkMp/x6bNCjzAGboUX8LdOYjdlQfYbDPQLsW7vIv5Ll\r\nyNUtpImpiHm5kuQpMMjpZ11oPbRQp60JcdvcVRcii4daFePkAI9TjfQ4U5KT\r\nYbdssDXCKU1JgNK7iCYSIKhi8ATvIPUXbbfnEkUy4pys0Ht/RzoPrMNwEPLz\r\n58vHSt1Qlg8rO/itiXG86NJ5RJ6QhoAGCCDmuu+x8qDwo42ilDkJ0T2ZCLgT\r\nLHsVcgKnpgmsgtkACI2Hn0715iaRbbmkeZN/BsVfI4XN/1uMe/IH0h/JmDh5\r\nCOL+8iXAZw9E3llnPE7g4gzrVtUeHEJSnVRFsuFlpH7cgvcztv6ovgMpcun7\r\n4LC34GBt2phcrfrc87kIpyXPdoe6OUtXHd8=\r\n=j5hb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"df64bbe9c015f40d3cc0d8978b29b92b5e200107","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-df64bb-l56hbwsk_1656923380691_0.3866918879703527","host":"s3://npm-registry-packages"}},"2.4.0-feature-dc50f6-l56hxv3r":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-dc50f6-l56hxv3r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-dc50f6-l56hxv3r","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3bd5c419fcb6b863512c4510be6d9fefc1161cc5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-dc50f6-l56hxv3r.tgz","fileCount":1065,"integrity":"sha512-Vc6DltdO/EufwrJAU5uO4gQWIBDkor3/PrnE9yLEzruXHWd4/XdM7YwDghCAuROE9CcVz8DWgDfvv2gggdpVzA==","signatures":[{"sig":"MEUCIQDGY99nEkQbNIUJNARdDcexLDS6KgbSmElHifv4k0egvgIgXJ5Avfpzv73aJbNTWMKFQdAWbSm0+2cVyBZPav1IosE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwqkHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo37w//di8IHmYvZma7IIt7kFWjCHlShbrOfP4F+yRM+jjXxFK+GYiv\r\nqX/btZkLnS0kV1kmLnsbnct1cWbruYJbt6L9yzkVyL6l5AhFJ0OtbLiVxbzf\r\n+MDq/vx90++Ist+Q051gY+FBTGzO2ZyJUWw7b7JIn9xBvjvN4FOkSjT0AtaK\r\nQMLFAUSKNAZxKW2kt3gJGRhKxWN16kRd3HvsPFaciS1V3olvXKp3LNdcXl+E\r\n5CeTKrKDyexiQX1bmfa6v0efxf2DTa73KC2zNjZhVdQNPaRVwC043hCmwak7\r\nlduh6ljJzEx06xKj3O82uw9hAE+f+fm00uKKLk39Khuhs5K43OAdIg8Kyb2g\r\nKTMaT+SbQWrjXBkHL51u2ieoOqw0ZOjeQnlOhI1K/WqxZivSXkFU5G1E37yM\r\nSDxLmuKoeR4/OLeEylCBrv1Q5mSUIfjKcugnlgCfL3lTzq20atpYHIFO4EyR\r\nF6jZm38eMG7cIRLgaDqzEezIqzwzoOcAF28NCD73v80JMmxRLfXXagEl5bYM\r\n4go5l8I3KvJX/9f2rxl3g7jRCi4DIqxYTtCvnsUOXYlZR/YKzcQVomUSiC9C\r\ns+9xCLTvG0kDB8UTR0BpTqVV4yWMswNCnO5xYYZ517WAayx0PbLtE8rdS9sq\r\ne3cWyQuTUW/BpB9vrqJ7VOUFskyO3MNKCPc=\r\n=GNa3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dc50f69e802d3762cf855e9ed781fd0955acb3b7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-dc50f6-l56hxv3r_1656924423693_0.19602828630040503","host":"s3://npm-registry-packages"}},"2.4.0-feature-d4b822-l5awnedm":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-d4b822-l5awnedm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-d4b822-l5awnedm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"550ef5122f02e779fb82a25b7e805debc8912dd4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-d4b822-l5awnedm.tgz","fileCount":1065,"integrity":"sha512-lI3TxxlIDe5JVReOCMTC4aAwqGZ7LfMaC/jzcXXOShG8agTdEA7V1iVT9G5OcLQq2HKRUgqK+prTFcGI5oUDkw==","signatures":[{"sig":"MEUCIQDOSYhrmQc1ar3x8c/xZqkfaLZhiDmRqk/2tzmHmdnQ/AIgQa1ohgBetC+FVif+84jnlCOBLm//Q05Sx2QZjEyc6LQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixrpFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmplqw/9FTT6T190aOhqkXcIiMDdXVeoliRxH9vGBVaCnJs2q9G8L42s\r\ncbK7P64E9goL671icfkGfSSel6ap4WOoRtAGnsJDjtl6bHDo4R1a2lUqKGuq\r\nDXPx3nGR8OzjzHIdDzSuGrw1O3m1hF7fLv7vqoC71aa9xC5Tr3SoOkq7ybH9\r\nR20M+8CelS0P5gzKGNEo5r2dfWom+x2GaCIy4ALqJgEgKTfiO3YhwPkhExgO\r\ntl2k7CqnY8EUr0wbsRNuuoGL19gHqNXpyPvZiSfG5MUWRh/1y5ai1aOWLycb\r\n+W8C+/r+PW13vYM4RwZJ/8S1smPaytecBCJbBecFseT+pkW06l2T6l94bfnV\r\nNLUHKZXopAPXPjzOxbQkMOGLx187SBkq6dnIgARsJE2du8zpLZykIJdMOFE4\r\nG1nMnqcH9ALjIseySd+YiHFVhYlW/UCTRhB2LUHc82xJHq5d3hvgNrOYxah7\r\nwrE6psAoAChLlCdvTDJOgdLII04N0Ctj0OzavL3L+F/wzwEjlOtWGZqyBhrM\r\nJnAULB1LyXlVjup+rkTFFPCRXTtL9WKWzIpuh1QqlBRath2awEYh0krVQ+2w\r\nSk0OWwQoIqVzIAoO0Ho8Iazo2qenivAFofTiQCmA2gDMHH7+8hwDGhngm3JG\r\nK9HbD4EM1YXcUDmk30sx7M05n6NH9N2RGmM=\r\n=EGmC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d4b822fcb4a4427dd3784d787c549301cae3dd0b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-d4b822-l5awnedm_1657190980702_0.5661666816793138","host":"s3://npm-registry-packages"}},"2.4.0-feature-54eec1-l5b1vk07":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-54eec1-l5b1vk07","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-54eec1-l5b1vk07","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cf7e34a7000c98a157a59b0d21aa18b21b79f6a3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-54eec1-l5b1vk07.tgz","fileCount":1065,"integrity":"sha512-XfTEvzHjpVzn2vXpzAQWFL/NXyGTPY7yRk87eZsZdVYmEA+KvnO0RmzcstnO187I6Y1YU0T6olXtZf22iNSgkg==","signatures":[{"sig":"MEUCIE9tW/GgKjWryBetq8kMP0PQcsCGN/+PMhlPHJAvXMIFAiEA2/PZLZA8RGn8RRmrPeXmINk4Q4V10xrNyt39I6Ei7V8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixtzGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoM2w//X+mATDI0bgkxHaR0UOxdGaM75jKRtKyC2WswyEAOeeKHoSRK\r\nsYyp+mSZ2kNgeTFgoGnttPo1gssOwSuFXTDuQhupusOyhPJdOeKTaMlWERwD\r\nWtQXzfvgRtFxCwDQTdUX6JXFeIVXM7V3ooMSmvqFgtKJbsVVYvlc/NxiDgoP\r\nNG0EEShP2qeCmZ1frdce0TLFacFhaO5epmleuwiIh4b0ErvttVWIMLnx6UM0\r\nIcT2JzMXoV43jCpIIfd4HaGPt3LRHQAfFZFIRa17zJCe8NVlR4+rOKcOVOhR\r\nl66vIMVtJWrFlMHmm5Ih47r2QR3t2aR+AMerEvR9gtNpAuLMttj0Q5CD2MnT\r\nahI4igwvDMbxxIpgWrsyGGlupN05XiSRF5TO32cQsQu50bdVS2f3WutW8brl\r\nv9hjdIgLRzZXHW9MAAaNfYeYorhWop2j4KWhCbjv4INDoeroVn5v1tSb88xb\r\n5kqaWFDKVvEskl5gRaPRoUpEAZhRLOcUwsECQ1AdWqV3JgPiCEKRmTNVy+Su\r\n4vMUGLEopAH//uArsahkRc3634MSVTFDlpGR3QsT0W/NvYZwRYVXg/9Ys+FI\r\nctw6/xXyJ+OesqOUZQ3lnYUjlMOoqEAyl4sHjs3n5/G9OHRpxTK9SP+5BaqQ\r\nzlBhSgeGlazonbhaQzghqArMWCjpIf49PoQ=\r\n=JayR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"54eec12b0e97e0c17e4494f3f8e977f79686b58c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-54eec1-l5b1vk07_1657199814591_0.25004907499937","host":"s3://npm-registry-packages"}},"2.4.0-feature-bc4439-l5b2cm2h":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-bc4439-l5b2cm2h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-bc4439-l5b2cm2h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"81d0d2f94ef7bb39f08aee6415919b937e1eb8c1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-bc4439-l5b2cm2h.tgz","fileCount":1065,"integrity":"sha512-3mty0ojCAvP2RBZCZu9LQw8TjyQ+6IIuOu7SW09Q5Vz9LPqJQom/lCVoCYJs+BbQFm49xVOX/y9owJibWzsv/A==","signatures":[{"sig":"MEUCIQCCXHVa/RYOQOw245ub+ASFYWIrrJ3lSBqoOe2UwnCMpgIgUJqxSbuv5oYc9cCFJaD/7cSa449UkrIgjn1nMmGh9ug=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixt/IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp79A//X3QGUEx3F+2qbq+tmW8scy8Ri8EWBlZ4i822zIZwKrV2pRxp\r\namftnrZnxta5mrZiwSI4mBDXfvxcOwswJB36Z0E/drQUCgUK0Hv0CJOW3zXx\r\nOh5W+Xlmm37E0OplUR1e84DVQYPSjd87PGKLhkCErTqBnT1XgteQdVo8ZgMD\r\ncJtLCv3BxoMqcohEB9YwkGJ3tMUtFJxkhgQqezaYruFN+IgLhugGoVap0TFJ\r\ncQCCm6tQIgjE1CXZCYqfrM+owgV8eAUbmUIW+Tply8ZEQPZJ4Eh8vALkdoMJ\r\nlLZFL5wBHfm1PA6wjkiTGIfiFKJcrCHnqHM7YP4KFtpNQAuBpTjHnVEK/8M4\r\n3Tth/V7tvwwLKcLr9TO7WhOmK+AH0Bj+le813C6P4rARB3rObtt8BvsfNc/p\r\nRDoNaEE3ZHlLaJynrhg8BiJLRmJ5872bGi1BcY4bxkYt/F8/ylRRM3g0Oj0E\r\nbN7LHQ9IxUbzsZGfm5V3xvnKsTiCu15WUYd4RsYqxdcS8YA2xfpPBVQuiJTl\r\nhAPYpRzDlpl37UnSjnDlhhFK2cu33+uTB+TGS4CcauzBLj1zZJA8/wQjMKKk\r\nZBsuBBzeuHYzF1AP4x7nF9boQ4nbUlzNCFJEN4mBE7qoumO6flAlVG+kuct2\r\nBIPPYQ36cIvZgNTdaR2DJyRbOOQbBJVhVYI=\r\n=GVii\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bc44393045e47f7feb94f6db20ba2290ab0defa9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-bc4439-l5b2cm2h_1657200584012_0.2882931962419937","host":"s3://npm-registry-packages"}},"2.4.0-feature-3277a5-l5b3n1ka":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-3277a5-l5b3n1ka","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-3277a5-l5b3n1ka","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3850940e56152d88a4e9c15c5c254e30cb95b6a1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-3277a5-l5b3n1ka.tgz","fileCount":1065,"integrity":"sha512-rFsK+56uiEwYXMPQ684YdE2LtpPpPr5LR+3R4OQq8TiAPYRtTxsxOqxvrSK8HWdWVlK455vNLUh4q/AsZZ0oYw==","signatures":[{"sig":"MEYCIQDJv5BtrTNnFZVLvjwgRRZ/aheYud8YDaybWLHcFpX8gAIhAMkCn9tGx1TJg9qJ4yado82L0VPeGb6QMDoJLvOvpEvH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixuggACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYPA/+OkWtMTkunHX5NRJOblmgkg8sbSvbJPZrEZR5d43fMQrOsLA4\r\n309ASTej3L2j1zPM0PVANAkXZ7s7JSkl0Lsp6RWteUT71UfMvSr9awUIkmyg\r\nLrkxhThDZQaKFwPisqF+6bTHQdeDJIiH9ZUexGXPlYKMu9TySwIneew447yS\r\nu4F781/Xy9i3rOlDHTOYL9wnA5KFDl8LCK6iYuevTbb7JcUX7aI+7d0yu2JK\r\nf+pncGKtUKYDGkOR6brq+K272dMiy90dyR44r1A0//OO88dNWwP+IXAQKyOE\r\nZcYl5j/DUvSpveHRZa/tc9uNzrXNLAlt+CtNawhzaunprOauE1GRIdFqH2zF\r\nAEUmfmPrz9VTCaYwVbQ58wUow6QSPBCSrPo2qSWRWo4cx5WDgsPuBUo+7scI\r\nFT2KfsqNrq+MD4HsYgQHjKYAaDeA2rSY33bVIdYOrJgSJWyV4KhCQ+TOF7Zw\r\n0r4lLAnums712iIIgdPQdbupc0eNjk+tDYFdL7YoytZQAt3B8hAdX1c/vG6I\r\n8fwhtHnuqCRIkgYvQgdBPPId0N3FRiuwKDRqoPBnGkWc6yYMGLqVABUIJIqB\r\niQvVH2K+ZVjxN+MhfDLHkASemiR6nkCH5UM8CSe8jD/ykiOfiXTHUpk+bX0J\r\n+s5baKOd2CDzg6K0QnwBkBOPF31K6C5r16I=\r\n=E1I/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3277a53ae6290adf3560c608166a9698e5de9a75","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-3277a5-l5b3n1ka_1657202720025_0.19270820208990047","host":"s3://npm-registry-packages"}},"2.4.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9579702009a038597d006ecd2ef3a29ecae242f9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-beta.3.tgz","fileCount":1065,"integrity":"sha512-HpxWrns4xPj56ldd8wDgm1lYg7YET/5iCx+89xM8F9Egw3TjsDjR5hF6xqVJYCdTu4Nzgqdoka7Smx2dAucPOA==","signatures":[{"sig":"MEQCIFf3HyOCV4VD9P0K4oBxSvZ+UsXsH/p32PeEgjghhzUiAiAOAwIBJk682TzT+7UJ86iZm0jbFYj2ylssnGTVzMb6yQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixvWPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmozLQ//TMo+CpTqPLU2rZl9cY3Y/dYN1lCG3zmae7jNd6lrtdP0Zjth\r\nzJVqh6pg65GqoAbXu8eTw6KvDilgbe5bdEFR7OjxTrX72ZYQkLN58vtPzW5u\r\njayTcMZXJPR8GgJ+tUTfTLFpPIxGy12jo52po1cEiHyvDoBv2JzRDJzELTVc\r\nnu9Xi/AG87L2+53JuE0sEKHvhjpw6A371rBik8awU4zNHejcNagceV1QBXiL\r\nD9u+2DebbwyQTFHa96dxo+284rDhA5ZUUYnTf7haq5FytuvMl1hPm1HjtsGo\r\nD5yCTz4Zgb+6/YKIwXOtTwVGFpaAGc0rZOdZqoeEN+Tt5PlhnWt/CCOoUKil\r\nPXwIxXH3D7/+2m9fXv7V2MyDgYUr2qzmbQxbuUHsGrEomBOt/ixdEtcpv0vW\r\nwQ6jQg0SKRe5Zb1lQq5TucJyS+PIRIbox+yK1YtxaHPUIp9UNe5AL5BAgJS+\r\ne7L96ZcYJhar/cfSXlgtLC5Y1/JeBEItAlnIzqioUSgquyapn0nu7//VWUBQ\r\n/YlWGBG0tUPUMXdbQKJq6Xx3imwS7ovb672WxiPgAs68nN+UZzIYrGtbffgC\r\np1E8icdAXkqEYIJFMx0EpiZ39UYxD8EQWyHU3sMswb8l7YW4Sy10D4jqmVsU\r\nbOJawN+7BtsTuHCYg4wzECAd08aRc70D2bE=\r\n=QsZY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c663948ff835393283200c6a42e8c913372633c3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-beta.3_1657206159085_0.07980652948784717","host":"s3://npm-registry-packages"}},"2.4.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f462195c9a6ef6cfa78ca4ebada40ff81f9d9cac","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-alpha.8.tgz","fileCount":1065,"integrity":"sha512-jcjsV/gSOJtBYLYLjo/QSh1WTpqIHpJypD6ejMRHiDur1Kkus1LGsmDMIKbZ3IJUsPhMlcE+DN+0LAz2ZmGv4w==","signatures":[{"sig":"MEUCICtJReex9fyPwQDZuqg/CoE/myOZ1QGgEwr/joL7NxggAiEA4485XuWJqhbP+X8Iofo/4gaIRPIuD6ZdbndBEHioiGU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixvdjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5EQ//VPfclU4BBw7y9UyMuCXNgLVHwbq8GlY/8/Ir2zXEdAMJ4tyH\r\ncCu0RA2jXeSYUNX2SL1XdtRTUJE9Fqz/t6i/NovyG8p1yl/weLzlayp+483n\r\nP/qLwyzqAcD+Y78czVdeVv/SbfU/LhPtCxJLi/sWYIIdvQOm1INYmB0/JO1+\r\nI88oVx3yDqej4Eg1oZSjy/JTTupZrF7kcI2PLUNRParMexB2IKvMhBOtQuNW\r\nSC2X46mW2Q2CfTfauKV3qJaDHyL2HhsoXd+t+wOQcMsOGfwUg5tr8ag3enSi\r\nQf4ozrSRrkIfwPnYumDlkyeO0mQ7nQGRMRoCKJ6u6uKMMuytuYAfPcEPLs6q\r\nET8wOzcY8gbxIZFB8QBcBEXCUVPr3twCJcE//ceXzK6fgS9vmkVdZsOa3dDU\r\njrFbjaaJuKZSiWFZfWgiZRwkVtOBrho32Q0sgPMlAYLljJnwDbCqCPbsCi2S\r\nycrFxPj/YTRNjPWl6+W2DG6pJggQFLErNGC3rzo5AxY6dQpgOosEDZ2fbwY8\r\nLcJTK3CA4mCuc9CxQq8o9o7tvqH4fZT4YQyc/LypxpO4ZfXMILzmpBJVm0lM\r\nhBeiKEIxNLzMfogsX2pWU1dcNMTI77R12ImapV9/OM6DH7XqWEvzoNin2dRn\r\nmUZMqyhICLMNjbsrCrhhuDbL10oIMFIK/Vs=\r\n=GiuL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c84930e789fee2196611c023ba23afb881858ba6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-alpha.8_1657206626862_0.0668995908180523","host":"s3://npm-registry-packages"}},"2.4.0-feature-5a17de-l5gh2pr8":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-5a17de-l5gh2pr8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-5a17de-l5gh2pr8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"27689b422f1a3149270fa13454a0c2055ae28a1b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-5a17de-l5gh2pr8.tgz","fileCount":1065,"integrity":"sha512-vFUeWrCkr3JJlhz7vn3s25mXKQbEHL/2zVXl5ZSPm+E2NAY7DizHy3AqWwcgsZlwjfR0o+1CEWjqCToPdJoumg==","signatures":[{"sig":"MEQCIA9FZw3ptcJG9NL+F8JrHNr0/mL2KQV1L3ojMnp1q157AiAyZRvKRYIYr1ca9roXsWRpizP0O8krxm5nj/hVt1b0Yg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiy91jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqEcw/6Azws79sQSIbmlF250WyRMlNwh1fJ8HoRG2MiALzc4vCLSXqx\r\nPrsMutQCfLAlA9XB0A+DTkPFR/RnjMrLRWE7IqhvaSRnYY7WMkRwhkL31P0h\r\nk/HKesvkQBODsLxwymJMVyNmWSgnPshd2pBY2vqnCjkEbeX0GrexhKXwC2E1\r\nk4v9vrkDcL1DcdyOLzoWQMdW3u9oujeuFY9rdILqVfQjvT8we/i2rnPDcg4n\r\nhhxYaafGOPbSLWDtJddFV5utiQy3spn1YxIaA90xGPX2lyc77tWuMrrL3EeI\r\ngLGdipOxLOgSs89s86DWcL6uSHBmBt43u1Allk/EAhUlSk/IerhvEiRNRX/G\r\nsZjhwQq/kEZEbpiHY0oGZ5mneafp1klLBr4HWgVfbFcPxEGSZ2at+C0aVYOw\r\nA5InbSGPBDH0a1NiAXaaFkyQCYNojXxbxzywp0c/c6hbM3DPoS5aW7YRwPvb\r\n+msSrQLu6I1VPkuNmY0QmAKhNSPSHWxYpOKspnLYj+9fjVD/aGNMuuYfZgl5\r\nQ7gvt4azDoBagADvL6JLJLSvQzJF9kifWLpJYL1RTwK9kcgLGBafyWDNzDnC\r\nP2r5ku6Po7kgDvQEQujw1lYXAlMidvfEB7Ak5hxnS+1LtmshM7UxrZLnSPqy\r\n5FHyP0zRm7yODAQAJ5JdppgeNy1kgkYwhog=\r\n=ehrU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5a17ded33aea291d2a482046895584a8881eecf5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-5a17de-l5gh2pr8_1657527651342_0.27867435071396196","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0d67d02215c7a4b06ace04b899d7e213920dc02","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0.tgz","fileCount":1065,"integrity":"sha512-n3AYrRaczX65pZ4lsiW/lwISy6ltWiVeh2bwhl9tJ7XU6mY093zkVRSQpjEUk8dJuDPl/TdfZDLix2EShbfBWg==","signatures":[{"sig":"MEUCIAWDTO0QxX/k4Gh6XiEsuW79KHHt7BnOYgpbS089vVkJAiEAxNiVbRI4GVsDqx8ub6E3nwDxwzrRZttY1EU/Ye+A8Gk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizUPjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpImA/+MnXQfwS2cYz0yBgFkpldlPSBl/absFbaaa9yVJI2OB9dGVjJ\r\n2JnDuKgbdUYHDTiVHsVgESwfWerXNfQTbr8C9xzS8zFM37xD2RLNL0uMl8+x\r\nGeMWah6hrbt9OFvdDuTjTiW1cm1TBeCqfaOAwuRYx5eSfxFob32MADhcDnEd\r\n0dqWDAFzOv/6AOwAnRXU5XRaYfl5OqG0wvMm9bHz4l13HSux06C5BfdOIA3/\r\nfYQJOyNE7fFGvny0Sq7movtIzrU8ZSFX7pvGQjIYccan6sXEDkJgeePpxV89\r\nikVAJuEB5+SAPBmG1hW/masdyz+ujcTfemQWWIjHx4UYck76WMbMR7wxnfMn\r\npef/uFl7oRt6cjCE6WyGYmBrTsWc6nhTaIUdwvEMQhcqhXnrpiKqkN6h7yJg\r\nDJrmqSIgGRoyhh9JuDkH00fRe/EL2Ft0q235uo+xFmq0k/aeabUTG1hutvOx\r\nobzZsQFg/gnQ9kHmTFUE4R36TjwfFR4xnONuhGrkmaE6HSNeGMNEdX/juDU8\r\nFySws0YJiSpoLnE+nYXxX4dBCsHT+BggVC/rRNef2maCuYTvSctx3lJ3BKSa\r\nYHr31bHYBpJfvXPzrXWIlDaGme8KXyD7o0eWjLpc+Lztx9fUiw9vbtXCb4q9\r\nw6csv3mtW2VFZizs3DKo3rp98d0EJcHYxow=\r\n=rBIU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"191385df5a8449e56d24170edebc9a52641f1c9a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0_1657619426870_0.5136122799173786","host":"s3://npm-registry-packages"}},"2.4.0-feature-50af7d-l5jdonaz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-50af7d-l5jdonaz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-50af7d-l5jdonaz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f89ca5b38cb809bf1b035a7e313dce422a867103","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-50af7d-l5jdonaz.tgz","fileCount":1065,"integrity":"sha512-a/CtPf1GcX3HXADwbF/o7+6LfurvVjP3ehcpisOwznd+NP0zBcgT9SDIwfntx7nCjvtvh7eBYSVehceM9YbNFg==","signatures":[{"sig":"MEQCIHrYuY8YwoJXtVDVFR66nu9rMaBtak6xoP7GEqkU0qPAAiA1E36piGMj+0b2ao+GK1YROTX45FAj+6g674nFON3d4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1795446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizouTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpuPA//TG1CpW9ODrvl3jlHFeAikpLHv9P4kvtdd1mVdO3tU2lxygw+\r\n+pf5ja66Bts/EBI2cJr+JVyZxFFuDHEuNETldEZq5Ltqqi45+YHsyFg4MNbB\r\nR1VGz337ZBx+nUR3G6drmF8uwB38h5hUfOfo/2rkTQEjJJxt3qRm/C1ruHxz\r\npVttX7NkfJTKQdjJfp5gtgf2kNxUKevoP5lVlaOkpgWdUmQHAWpyEdhRFKU6\r\ndEFKQismIud8weQ1EHX8EscvOq2US6n1nEx8kVqss/0fF8UTi4rja3NeSjfZ\r\nJ7eERy75Xqo5taMpqg7YtsPN3WEaFKTE+FwxAjLBZHgRCkHXGvBUiqLIk7Cx\r\nhc7FHkWpM6q+4DFrzixo8klUTBUOmrZ+UZSupx4md17ZSiId+ix48ORysb9u\r\nBXzYIb4A9C840hvd2IjWJnuoL9eNzU8LRYKm9szvfgYlrOTjcENLF1/66/B+\r\nUUtM3ZZyaUwiHNFVYLppMVSEd7CrNoq5fuHBX5unHt7XeI34Y6LtOWHTyb5j\r\ni3Mjl4cyirdmyla+KhKQCyfvtXD9oHBpWM13qtKZwkNE2kmkr/apCR+9pJ9e\r\n2rhbUfcEkIxbVlr6hP5YZDyUg2VhVxw+Zn+u+iD4ELLCwassMI7P7UFMQrU+\r\nGpbZYbkm5Drr4JdDxHnfLQHRoEY9w+ac9B8=\r\n=n7yA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"50af7daa8a8d12d6600ac0c1ffa6137aaa30d84d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-50af7d-l5jdonaz_1657703314954_0.496430596865149","host":"s3://npm-registry-packages"}},"2.4.0-feature-0e118d-l5qh7jfy":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-0e118d-l5qh7jfy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-0e118d-l5qh7jfy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"60478fab0b6861810ef1afe53a48b0aece5056a5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-0e118d-l5qh7jfy.tgz","fileCount":1065,"integrity":"sha512-bm7Rs+mPsz2cDXddKjCPnsncT1RwKlFRRhfji7ByeogkR7QLYrurj0V5u2RD37rjylezIIhzfOPDpSOZHNTTSg==","signatures":[{"sig":"MEQCICo3kvVr/1gccErAVU3erry9sDt7ALXYwQp1eKvwm5ocAiBrTM4b+yA9ehss1sB/bJnxkCjwZaabTIxBjVhGd9FdIg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1RgxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5Ow//aO0DOxFSlB2xgmooQOwdUQ8d+bhGEP6qqukoyVN5t21spv35\r\ngYanYXN5Sj4FHSXZMg5cXWKtXLPPZ/e4QGKHTgItSMjR2J4z32pDuqic7Rv8\r\nzC1jdNx866+Esi57rZh/KoILyEQUDHsxxBUn6Keantte/AovvEtGdc7IrfXQ\r\nvapccd6Z0xezA+x8WPskSN4dBH6Dx4/sk4QqF2S71wbjAGuW91CeRjfS4D/8\r\nfMl4Iq3cec6rLXaCisH+Z2kGBk68Mjtljen081cjph28zBIS2fkebHgJhKDj\r\nseZQ5dYgZ5SbtV/InOkGAGcP8D0r6v64++xtpcv+2DrsXDsH0C/uW+c35ilo\r\nxQ5hX4tepPzXvhQhNcI0HtgCp/rXhniCDO+7ck4GtFXWzreT6D46WAR7SggH\r\nvCk3IY4QB8BTeufiXsrDA7IDJQDI7+XflEvhYb+jiKcN6+Seu9DYLbhb04NJ\r\nHIOR3W4uYEyrHCgAZEMeui9DAZ+2EKwKvDf3LXVoQLv0VtU3EoJ+Zm9tHtnV\r\ngyv9jrH8ddXw9Avtr2fEOTU4yXvENfPt+SYkYFc4Uug652G+Nj0nGOoMJtBn\r\nz9rnEQ5SYRs+SQNa/JqClzl7PoMgklHCQ52FrOQfjH8N8dXWkU1rrnEcOmY7\r\n9OAqQOEYllzEH1WXRXtbKCB7o/RzsF6bYK4=\r\n=MQ5x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0e118d8f6b2163eca3e201cacc98e77b41531712","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-0e118d-l5qh7jfy_1658132529053_0.31482459932831053","host":"s3://npm-registry-packages"}},"2.4.0-feature-df38cb-l5qrcqnz":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-df38cb-l5qrcqnz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-df38cb-l5qrcqnz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3bb62ec49565a2af96f46cdbd69ac01bba8ea2b6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-df38cb-l5qrcqnz.tgz","fileCount":1065,"integrity":"sha512-qzqXMTTwf3m4kWUAglYyM975Uv8BoXylcbo3lzuKNusa3iQeTRgKGgM6g0ZKJ12VpQ2Kf5SoE7iQ6RaWYd4McA==","signatures":[{"sig":"MEYCIQCF6m+8uNC2Rfeqt7hwbo6RRsKMuyr9SdyuU9RQOaaNKAIhAL/mT/+Zk33L3rYzvpruD4+dSrd7utpcUsKSBw7ozbKt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1Vq8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowbxAAkzqSKO+Xd4xvXYchbVKag6jmYGSAS2CEH7Y3Sc+2mY6DGeZK\r\ni87anQafWGx25V5t7HNtVL98C3S4hE0IY1MJbrBnzwuie12/lqKspw5JoFtY\r\nhytp5a9Qj9HiHkibCzqt16mlB0P5Manvfgvv4Fx40W1zs2aadz94C1o+oFXu\r\nOz+HGTWTClsJNJmIHiWn8pfEoNvnOM2NUXBAbLKkkTisv9IDXzUKUXoL7dCi\r\nR0isLVfODjmR8h3vsPGKvl0MOK5ErIOD2xFZ5Azg72KEGiq3IESYIxd/6Ruf\r\neOHs30IEM6THcBwzVpV0juwsz3TIY7PxnbBUrGOXI4T7QLEQBW93GQgAG5tk\r\n+7jI4dBQ0No9JSuf6jh4d0WIExEroOLlp1EkY9lQ/iupt0ux5j8PMf08zHuM\r\nump/Hieu0Hy76yXB+mibfIvrh4h4KJ5TOrPssE6ZoBNx3n4uyWs5WEAzNRgI\r\nZi4bE1KhY7Xokvp68JdOdlFuqfba83Dz4pHWBd61QOZFJ876LkCk0Vwwgt0O\r\nqYjfLFe8icnislklmZMXj4pALKMSH82lS2UkU39QL7iA4TdvSJ7Pt25JQ87N\r\njxLswQvPMjLAnTmUzq7GLfks87deAttCblwtDeEiSJZ/XPu/VBwbaEiU7+CA\r\njf262uF5j9VD7Wg08Z8XRRfhX5muVZk3i6A=\r\n=hVu7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"df38cbc3eb341ab8fb96586a6940ac558bd51a61","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-df38cb-l5qrcqnz_1658149564334_0.28531652418054465","host":"s3://npm-registry-packages"}},"2.4.0-feature-40c714-l5s0k0rq":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-40c714-l5s0k0rq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-40c714-l5s0k0rq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c6dd6be7bb1193991739d5cf10166e1693d0e660","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-40c714-l5s0k0rq.tgz","fileCount":1065,"integrity":"sha512-gAzWDcrNFrCXIaIfNrjKIYPQDZ0n4SGz6tPRpNTAJ5UVAHgCXwLJ/eVD+T5AVjPyfvP5SCOHtnx+t5fePy8kzw==","signatures":[{"sig":"MEUCIQDhi2m7+sPFGqHl0+J8MV4bnauwfETLrDjYsV7YAROJuwIgPnsUR8pIKtNf90xGRE9+0YldjTbDxNLIuYWGNNURP38=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1oNAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojcQ//b2yzuYdDkfWwQuVI3Z23d3JlVe14uCHs9dvqdKc6Y704piFX\r\ns7Q6uPIV4oD+Esw4TDHaa7TAPmsmjCmpdAeTKNJ9yBRqTe1EBsWXccDrY3Jl\r\ngVfaIns3b+fJ135YeQ/Qy2ex906uDtV/+lDlG4/e+66sWFICnekl0Dkb4UnS\r\nO83lz+y1c9hfeykgjSxsvE4la2nL6POxeiQv5gVXXfuOEeM8BJPclst0J4PH\r\nQEMxCzk8gQ4B1CE8IABsrs2xechXRugW1H+cGMAIRVJfFt41vsii2hN7HAgy\r\noQk6yobkXWV0Nq/lEiEXtS5ssCXBtcSjDnKtWImjNNCC+133vS+JM9OM2Zig\r\nDPFrs7ky6kaIQ8LAkml9GJVu2n2d8QTR80BthkDCSCJwzQGdXMRO3i7lrQma\r\nULMkvHq7FpR1B0fFAABHuXD9Vp7HRpETWLBBZKAHPedyRdJDHxpalaU/t8Oe\r\nMlB4zzysvmzCjtLHrSBklD3dYJvYrzzUTeJPFgXF1nhwn76ZZOkArW4rgZQu\r\nGAwtsnNM/BL2JMYl9Qfose4Q5Wpy9fh5IXwSAQqxj3lp2rpsmzjoEc3g9Qp+\r\niq8W+Fo3NWrFUBCuOa86KHNiEa6qdsQ5Om7X365q9L/x4JAg1dAkvR7dhNH5\r\nkg4ZSacS2f6jcEo8931eLQB8xCkcvOMJmVg=\r\n=lzX3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"40c714bc8516de65adc69cdfcbfeb6e41124513b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-40c714-l5s0k0rq_1658225472089_0.22872142782966032","host":"s3://npm-registry-packages"}},"2.4.0-feature-3c8115-l5s7yjun":{"name":"@atlas-engine/atlas_engine_sdk","version":"2.4.0-feature-3c8115-l5s7yjun","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@2.4.0-feature-3c8115-l5s7yjun","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b35239d0dc8003bb3cb9558cdefbb358cc3cb4c1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-2.4.0-feature-3c8115-l5s7yjun.tgz","fileCount":1065,"integrity":"sha512-9sWRjoxJ3DggnEQy9L3kgJzLVuYFi/V3fvDCN1vdNMDbhM9B+5KLxJJt2+Kn7HAub6RcLMy3ygMB+IFrk7M1sg==","signatures":[{"sig":"MEUCIQCkA3Girbzn4onWUhpCfKhIFzyixOtGZzmZ3jz2ea+2BAIgAyNS4mO9RS+I9lH875RTAxX+7txNnmzQ4Ksv3IcZUpQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1rPrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtxQ//Rh1DudVHKyWM/Eba2wq3LCMNLyPhYB9JzBakop3dVeXrC21O\r\ndzyrgbek0BT4CRR58xjWDAV2TaULBH13+nz4acuYLz8vl+8TMn1ObssSqb9C\r\nS+XwyJEXIK0xyoUcDV8jHi8570mfUtoVX2Wd6H7QdKBu92jZqzMRbFiZWiqa\r\nRICDbaDQZ/xLMrEsf6NmBNXlX9UBqm7N+zsFXlYG3r5oT84qN9BHWwjs6V2A\r\n+6Ax0QuqhmQJ4LHjOxja1PBOx991cRb4lYuN0uufKgwm7A20A4BPM9upFaKv\r\nT6nnirTPrVQrQOSheD2Sn8J16rm4KKmOWaOquLq1T6GV8BPSEKeWlPjQfySA\r\nx8vaSNw5TjW7+iG6jN7Jkem+Z0y8fJrbEsMcUL6qEpNZEjeask4OveslL/42\r\nyLr/YpNeoc4x8C3YXy/mZjE2sX1yPfcVJ8I8vbxtFt8CKSgtDUJOZBCWMSud\r\nto+R39g6c95cfEnAfAqBjuIQIp5E0e3jaKGy4VMptNtzZrUf93MD+EA/tjI1\r\nNa2aONw9Mq+zXxy5jGM3qd0ffe7UL84uE4PBaJBXYotHIDlU11efYF63IFk3\r\n0z2ODfE7sdZSgDOzvde1YqAqg5lYobNgYj3sqlYGV9c3FaqVig2Taxs09IFf\r\nEa1eeLfatxShLur0orcNkqR5IcHZnp2EtsQ=\r\n=nRAx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3c8115e990c1b9d5f6cf954d683ce17836dd889b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@types/express":"^4.17.13","@types/socket.io":"^2.1.13","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_2.4.0-feature-3c8115-l5s7yjun_1658237930750_0.7017244542510281","host":"s3://npm-registry-packages"}},"3.0.0-feature-181804-l6amk41l":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-181804-l6amk41l","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-181804-l6amk41l","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d4b73045fa893d702f21e6074bdb4915b7c43f0f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-181804-l6amk41l.tgz","fileCount":1050,"integrity":"sha512-GgTqG6sWvdo9mNVjALPPCWZ6PJKnT/Nkf+0CXBv7Q8rXLDeXm9DZ0RZFF9QCzxPfdbBvPn77n589gFJnM88UEA==","signatures":[{"sig":"MEYCIQCHf7uZ/MtXCN68BUsVZuzUvHf108yMbtc+1gv06cL6BwIhAM9x4M1rK58pXXlZ603NiKCVKC0H9mBsLrwDsLxyLg1h","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5682ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPTA/8CN5VHccE3Mxoyh1yUbKme5BSwgJw9q087PNtrOBRavGoBkjl\r\nPNq8DdKmb1iySOvUgNv7OIrfHvH95ETcHjYUFOHTJr1DrWLy7XhN326pUZyk\r\nxCetfmeqjEXZSXMQAKAFGtXm0w7U1J7GSfueEuIko5CjF3ZkoOlbDGgnMOyM\r\nXQ9H6iCCNAAfpH+S26GS8adzqCBc+s9aD1H/vcwLQ6OXqPcZJjWq8YrDer2c\r\nrDMMUENFVifhGoEYIBMfJEN8G779qee6hxDFQGxpItspFk4Va+dZ4F4nswnL\r\n6QpBK8DVXcDSS1xdCBefRZtuANAH5Vmi9SqnGjWhJ7Stl7Y3gIGNWcXN12ek\r\n+2UNySKe45o25yCS4d4DanQPHTGORc6uvb3771872Yj93+lJSSLPMAOUEf70\r\nofZALDnl4WehZ2baZxGSt2eJpO2yDxONsC9UGkzGmruFOAp8s3QqqDHKBDK4\r\nXRyPHDjEI4L3WmZRXJ8Wjwsk0toMGb1Ce4MuISEaCnQn4IvAY5q7ju48Ooh+\r\nkkUlJwD7qCpgO9s18L59sg7Q64qpfrBduZlL4/Jr93VQgfJLNOPlGD349LJm\r\niB0TEc172IcFlH5Wz+WFzygyitPW7hyWDZgiv0jCVXmEERBiBIebz+kvikYM\r\no/a6www3PX6KzG4EcDJ+huAm5Ut51dVwjH8=\r\n=JoIb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Atlas Engine SDK\n\nDas Atlas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Atlas Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Atlas Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait AtlasEngine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Atlas-Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Atlas Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: AtlasEngine) => {\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `AtlasEngine` Typ stellt Schnittstellen zur Interaktion mit der Atlas Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Atlas Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### AtlasEngineActions\n\nDie Atlas Engine erlaubt mittels AtlasEngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere AtlasEngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine AtlasEngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der AtlasEngineAction festlegt und weitere AtlasEngineAction-spezifische Properties,\ndie für die Ausführung der AtlasEngineAction benötigt werden.\n\n\n```ts\nimport {AtlasEngine, AtlasEngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: AtlasEngine): void => {\n  // Die Funktion `onAtlasEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onAtlasEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onAtlasEngineEvent(event: AtlasEngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die AtlasEngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende AtlasEngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende AtlasEngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Atlas Engine](https://github.com/atlas-engine/AtlasEngine)\n- [Logger der Atlas Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1818046bef624834afb998406369e55b280c64b5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the 5Minds Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.4.12"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-181804-l6amk41l_1659350838056_0.6043649569266394","host":"s3://npm-registry-packages"}},"3.0.0-feature-614203-l6amwq19":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-614203-l6amwq19","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-614203-l6amwq19","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2fcbb0a56b3de32bffe3e19917ccd326080157a7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-614203-l6amwq19.tgz","fileCount":1050,"integrity":"sha512-qoE22cmFhfvAxs1tsx0oNp9JKRWTZ/1sNoFOCIp0u9ZPv44iMa+9P5DuQ8M5ckXe8J5rNg8xdV4hh2qmoD2INA==","signatures":[{"sig":"MEYCIQDzJSUzex3gxyMewdYwygg4FADzWqhWkmwozJSZQkTNJwIhAOPlQLI4kp2lidL48kiSdpBwE5WhyoaGxMy6LuRDjLbQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1782378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi57FhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9Pw//aAMtuIWQ9PUIFBtbwZTThZx3waDk/r+hxX9Hcd6Kz6/a0ZrI\r\nLMTYK3pUuEFvsHgNR6eC60doL2RR77TED5zl/7Ydm/OxtNInO6PnhwbwRhlR\r\nse5Palgr5Ebtc6kYNQwLrNgauByUUDeB+m72GQUrqFGqYGp3rWsh9HkUc8ci\r\nR9Xzpjszsk7dguIqe2y9DoMGqPvRuzZFNQlS6cHh8RkbRCmCHZD3Ha5prSzb\r\nrqGi5os+ui2LXVEJ4X38uS2IliD2xsIF4BDTFKt0Mv3h/Gs0LaYuQsDelDj9\r\nIdkGXhPoJv99kIbyQx7PhLc3/goQAGtrxs1w6rZn1HQZcL4azy7UQXnpzbHx\r\nVNT+iaYN1lQ/rsbHM3vko2KwveIm7cFsLSDA2FjyJZdc4ydwueEkEmua9DQK\r\nTDw3Oh5chUqSJtDtXMXL50mzpkhDZ7qDFAk0ffIvCmyuDjBD+lY4Jc0tmZST\r\nEqxRTn7gc5o05D7pybMCJO/Zar21Iq9LFm6EvKr9+5YSLJCIsy/y0ar4XHPh\r\nDxlostLcLPp8pnFDlai90oVw5g58pals/6QRMQwHwuG7RE2OUhr6OVVmzR8q\r\n0FGoVYVPHw+isnMXoV/SMPVueBUu0IGMOOLJKNbTVsbBel394vB+Dcp7ewf2\r\nLzjQ0M0Cu58D1x6d/vnJcOrpP9g/rdbKsH8=\r\n=Vkcw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"614203e95a3fb0df914a794d60477532af03f510","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-614203-l6amwq19_1659351393556_0.0008269884724416698","host":"s3://npm-registry-packages"}},"3.0.0-feature-332ae3-l6apqqxm":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-332ae3-l6apqqxm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-332ae3-l6apqqxm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d2d56886b610f204970180ad1920a3c844392e4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-332ae3-l6apqqxm.tgz","fileCount":1050,"integrity":"sha512-IUokV0BKxn4sm8MBnucZ3wnXF7lgf1r/qErAqxU9MuBBrg4HxPLnX3JrTM4KLMrLw7OLuUsA8cUg+F8XrJpbBg==","signatures":[{"sig":"MEUCIB8RB7hl9mw0NdiTrQNoSan7Wq7qZ16trIcO4rCOEBxEAiEAllz4FFKBc+3oArJAzfKG7UgGfzccspp8zccPnjybCJU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1782407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi58P/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3JQ//ez+d+qG5W91jcp2zlVIv2CcWjb1W60apANyQe4+ber2nhr8F\r\nK85GetXL62fos4LaYngZsj8EIf9sd9ht+ii7dl9MdZ6s1hZaUCFC+/EFqT/L\r\nh5fURz2ExFxspcezelKW+dZgWqoM1sjdjgKLlJoYkXUKYAYjYtoDkPMIp0+0\r\nk7Pmw7UR5cPa7TfUJ786tcswQDu/zX0oOMM35mOHaXDTMA1yWeeNBbGqzIfb\r\n5Q05sohA2P6hffoWd+tCICOZOqJoPKLjJ5NLbV4Tl2I76iMdLMK6NrSgUdGZ\r\nt6p4XRqrnNCawe2aXIWVBoz6MM0gSSB0++ILqgMwQ4/2AmcpSa/nGu/mfTSD\r\nM73mxWwZntloRMVtwWGeG8JLQxCGqjwntS42IzTRBhRz4HZW1VLIrAd/QQ34\r\nBCykNKSYT892NP1ldH07J166EnZ/yXLeZ6BEtMO21LAuqqEKz/XtTTXIDJyP\r\n1GLb32CxS8TOSXAcTTfZzJhd0J74/rR9eNzDzpYdSE/rebkgEp76zOEn1XUO\r\neQy6mKddZKfJW6cg+39F90V+7byJ3NvrNKZNV9BfDeDmrjPEr5RaLwhngQIY\r\nGnw50En+lhCKkjyf8MP1RrDsWn1i8N41yxH1jW//mg4JWKSkffGIRsIMRbgP\r\nzjEqPqB0TJhGHXTTjuPopusot3IVKxXwiW8=\r\n=dv7J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"332ae3e56e3b07460900dfab66bebac0de86c002","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-332ae3-l6apqqxm_1659356158887_0.8734497134947017","host":"s3://npm-registry-packages"}},"3.0.0-feature-ea7aa4-l6aptyml":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-ea7aa4-l6aptyml","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-ea7aa4-l6aptyml","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e759b43b24bdc77e644ab40ef4dbc70cc9134902","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-ea7aa4-l6aptyml.tgz","fileCount":1050,"integrity":"sha512-w+CRcnHp8dF3CtkhcD8+W5gPol1DMgcJLAvGtseno26Ni1PkbZNOV2nVaJ634NANXhFG7vGeFyynwcykQKe/qA==","signatures":[{"sig":"MEUCIH1+JE1AcQckWUukWpa1qivYREK0q9SL7q1Hs6vCn5cUAiEAjSGuXE0OyUjqKxsY6ky+DshMkYxIW06Kmd+bqflQIHs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1782446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi58SPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5Iw/9GFRfUIig2NqUNqPTYTHZlVxPv/v39IWsoSg1Hdf60gno8OD1\r\nhp/CyVRByK6cp94YK9aqkHEpiRDaamtZ0iaTyhIUwgx7+eEjDBk3+orLwCSr\r\nuxfuE4SzguldQTudgdZmF4VuClr7N59+ZvF76FNO01cPq3SClcPxpXCqITzd\r\nfoz411yvur+GySJqzmMJq7P2VvH/wegz2FEXWAwaLO/gkFZzY6Tht4LV3VzH\r\nkP5VIviKHUSSjokrRjwSR+cdsrPgEo0Sef0ZVWO6R6+caOccQko+0sfvA3H4\r\n5ClE+YKpmVR/CfWCUH0bHkGF7tJZu+ecrWT5RfmwsENWpET2EfSwL5n6OD+z\r\nyge4b+8O3CTsthokxmU81nCP2ZbaB+aTpfOt/BwoZ+7l9V0b7usjL4+vTevV\r\n9Oqfq4yWsxDVZ1knDWkrL+8E+ampaOA/DfoLEMOEl4AUX8dZ+ZlPbX4o7sKu\r\nN+UHWmtZfhtwIc/q3VFOQypdEkdqR0hKQ7E9iLFkE20Hhbvl2lJOEC4TBQVW\r\nypOihnPCGozLZbKP2jM528TQfYMm7ITMTaFkNVGGc/3EVcOLU/mRN78uQfdU\r\nIw9QnQzqHmWxgwrGwr5hDF7ANn3YnTT2frMV9OfN2jmjusCSEb9TIsvBHYbC\r\nLpDllcY+PxHx5JhFrC1bMgk/6c69QJIt+rY=\r\n=EDkF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ea7aa459803f300ae27e50828c3e89ce3a46dd6d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-ea7aa4-l6aptyml_1659356302958_0.5987795990479934","host":"s3://npm-registry-packages"}},"3.0.0-feature-ff6426-l6apyygn":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-ff6426-l6apyygn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-ff6426-l6apyygn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5c633db37315a7e4d47b20ff372c92bb548a73c8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-ff6426-l6apyygn.tgz","fileCount":1050,"integrity":"sha512-Cn9WajdyxMIcsEozQBMm8rLjpyEAdKN76x8fffdMrCRFCMvSL1ckv3jUH9O4T18qrYdXtLL+Loj99YZqEl7oqg==","signatures":[{"sig":"MEUCIE+l7Vvc7wkezKLSd7OSmvy1WXrIhkrkZVxKEjbl7yDcAiEAtZ7XjDavhBWjYpCx7mUyjx9PFZw9bFFlO9c3Y7CPBFY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1782551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi58V5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJFQ/+Pb3xH6TXBc5b3EzKiVFD0YYh6YzY9qWvHgkBv5dyui4ILLoJ\r\nlckigYQXFcImoyoc9LAOU7mDb4qczq62n6j//w+lSGEB4CIMmg6j/pBcVeYY\r\n+AeYEStceIssbtbv5TaPnwyi/RbA3Z1LYJ3bur3TMcbhuu4+vMyXHODmHFE7\r\ndIIyW7ufA83BkfS+5u1lVLtyO7J1i4KkvV7yUvtlWF58cRaZe9wN/LjZZOeR\r\nUMsrfZNvVDECH82Acvt9BaMh6KJSlP1WZrq4LEU6FV0nhVNeI5GVXGaRVbqE\r\nyqhBNGpqQvSFMxv1NXkDbFqQO0XdF2vaANaJBUHhzHfMIY7fcs7AJxQr+oIT\r\nysFnUMKFwSFXRV3e/7rfvl3uMfWRFaKfvGZ8xYsDGbHJ8pBoPmrmgFzi51x4\r\nzx6w6FSVbzmbTIxsKP0D3ztGaq/8ms1uu0hZEg++wvDKIWNipVwlu5bzQsEW\r\nMm30mnimYSgaxHfVpIqVA9kbQ86iAn/qwmsJcPmZM0NpHJow+Akw/2WsLIit\r\nxz2MlL7BeGfngIVlNgszj5jqXkD0pTBi3vL2ThLi9oWf9PicHz0XzcffsI+Z\r\nawPbEs14oIhnrCnAhzhhyvGvhe3yHEBXSQ3yAXxWPf2uz56ucFv1rws5U4zs\r\nsmu4tWLGeKaHPecueFbQ8y4tMPoF3z8YFRA=\r\n=H/6j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ff64268bb8361c5c9db802b95fa01bf8c3d0d83d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-ff6426-l6apyygn_1659356537477_0.7194265030184794","host":"s3://npm-registry-packages"}},"3.0.0-feature-a1784f-l6aq6xee":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-a1784f-l6aq6xee","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-a1784f-l6aq6xee","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2ca476c8917f0f5b998f0acded296cf988da72ed","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-a1784f-l6aq6xee.tgz","fileCount":1050,"integrity":"sha512-fUJZuuvrTZ9CwuBk8NLyVKsVsNhcD/GgOl3X+OUZtNlCtqmJu2GOceJ6Xy2oYQVJS37ES9eh+0A4EkLB72nKuw==","signatures":[{"sig":"MEQCICJwmIqHfJ++kOfOQo38rNg+9Pez9PMOhqy4x9kQxrzWAiBOKCa/XtS8EoFCcRPQBz++Uz2tzr1YXu72M08o8rmdhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1783309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi58cHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoH7xAAgL7BT6b8IVB7mbzr951aq5aK2Jex8FQSwBWXiHMIpUiQ3Gft\r\nGafsBHtGybCa0+QvWr3KyeHE/8ejglvAHHTOqvGyLuXRM+0OIdREvgvEKGMt\r\npEnwQA+LKCfIjJEih3JvbrDun0F8USPOCyUboQLkjN9KLzVRPsXMKCJkhG7T\r\n1sQDjQHkdt0M2i3TvncPtT/NN1Y1eUo4b295MG6Xq6RELAmpK3Wn3cWgIBW2\r\ncqWtTEN6Khk3Bwz24NgyX/tmnk+0x+1XZ1Q8z3pddHx3GFLMao0rhCasPibl\r\nrJ4AytAHA79hlQAj7xyFr+DNeqF9hfZYf3FMjpsc2BdJJosH9JbiRBM2xiHc\r\nWobFGpIVgk1zx12t/Lf1mIUuAomtvdA7taUWmHlTDd4ZOZ/bE0pzSzeredWp\r\nmO7K81rxSXq4ok7o4ZycLejHbLXPKBJ8zIRsAx968HWjjhLYwJrtKr/wNm/K\r\njIaEiYtCVdUB07Ho6cvSVmPKlwsAff5Hkwmr+X9GIHgTe5oe+KDdEUgKlyP2\r\nkI+NvlbKeNJzMPX8IuyQt6fvSXExUhgPSpWJU7nKdwCmKo8OZvj9qjSl6Qa6\r\n0yKozZ3xfRDUDBUWdcPJRZji+jwnjUsB3zn0cEEbSibSLWhITGptYioJC4fK\r\nRdylIWwjI6UcdTqQNHy46eGBBqLCSA8w9YY=\r\n=fjC1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a1784f786f0f7354344e56cac0351031aa6b1880","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-a1784f-l6aq6xee_1659356935101_0.9990435543754035","host":"s3://npm-registry-packages"}},"3.0.0-feature-23f909-l6aqvfhf":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-23f909-l6aqvfhf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-23f909-l6aqvfhf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b5af44e7d932bb8f15d60210f54e792666cc591a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-23f909-l6aqvfhf.tgz","fileCount":1050,"integrity":"sha512-0PsbaxnUX4H7PXcw+9CM8DeKYyeejy/9AGxvxE4NdVt2qsvlLB67NX1P88crRMlEo6meMBJ+RbnfyAWhFWPL6w==","signatures":[{"sig":"MEUCIQC3w/pMDPJuPnTXdN0SFb6cH7BqVjwMM9WSzYsM6y7HtQIgBEBh8qus9OQvbqNPwxG+X6Icya5jrPzLKMqWqw8FkRI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi58t8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpejw//WoQEmjbVbyu0gVsErfH9H+nCTK+LbGPNYiyztOvu44HvGK74\r\nUEvKwaGd/K/ADeVaIyzIne95RPLc1/qQqwgOx0hIVqRGgsIqPHiip4Y/pdQG\r\nuVJQjFh52T1A140yAtN4lQ0cFcEELYOHJc2O6wiU98U368MqTm1aVTQt24f0\r\ny+h9p2vAeaN3vlUMt8x9FHrtkQGUmX3k+x8vR3MbAhn+h+BXz5S/D5ZhcxYJ\r\n7vrSwFi44DyTUPwVQsODpVgWaQVHTfvgGPL07De5y8s1SD/w48eCiigMLbPY\r\nQSdl5q2iOV25JmP8XduLexVKqKc/maXnXe/6ZP5dYZdDzoU11HFMEHWpvEOS\r\n7gfAGYCbrxDytFvPSiPiR3dlyXL+++TMwj0VnELKG6xLTpZFPaJAnfSou1fe\r\nBFLtZRmqT5s+/UyCLywweOPoHq35Q4mPDeZaC5pxFN+49viC9jkCtJ4amvRU\r\nfHZBV1ecaRtUBtDMstlUsxLWy0VPoKtVdObvoipzjzMune2xCplOAKqUFq9G\r\nqe+jTq4sRwrMmAA9HmN4gieiE4zZR8h8ugpASKkD+2SESG3sWo7mSwhb/7uw\r\n8oZqAREWOwxUPb/9kn/plqqzbzKGwsXwCFC0q2fMpQrZ89ma61CPWlcPUdAz\r\nlassDpGbO8I5a0WjaDo9sbPN8m6FPbAAp7o=\r\n=mVHw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"23f909ee7c5681b3a37c0cece4a540b886f4b13e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-23f909-l6aqvfhf_1659358076044_0.13724895539924464","host":"s3://npm-registry-packages"}},"3.0.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"771cc8b3483b54399ae5c7fd0fda10044d2ac54c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.1.tgz","fileCount":1050,"integrity":"sha512-U48+QRi7tYGNdTnyXVR1rd/DIUtUyCZbcz6sch7rOxZqbOy1FVbh5L12r0jvK/t2cWcQOOMh1S76GYrbpmlgGA==","signatures":[{"sig":"MEUCIFIMMvXep4y/zwbjIUncoJRz5ONfsPVgxa3KM0HEdiEOAiEA1HX+1yRY8SIHaauWnuJWgLrOd/Km08qqH1Fd55Dqevc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6mw/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrwjg/9H2BDoWXpT6ubAz05I26rf3BW8kUusov1wRlf4edZYrPFOuwg\r\npGpDLrjdJP8wyU+HlNWFTDGun2ohgZswjMlupr3Q/H/z/osZ7y4t8gYOQvpN\r\nIhbN4SS9LacgBsSWIaqEEe0+XaOCdFVAxzn8EzdFGPmzVe03LGzr6BfENDFq\r\nyzWhIv3Zc32eo5JDppoddQ0fLSwzlYJrpdKQFhLxAhXJIBErj/eJVdxTam4O\r\nLLUQhwRG+pq5NYqEyrxlGRd9P+VGYSAzPuHMrttPQ6nWPnLgdOuqMsjU9K8b\r\ndlMIKvmBjS0U4xFwYI4oWgkuswF0DVQKBsA0yzq0iHD0I1mn9iZM/2P0KSTW\r\nAokm45KRA3dqszSUuyPhkNmZkOBsswmAf2UA8/02RGAXHakl4hP7miMIqnhm\r\nQbGJadaXIBi5g3tAeq336OpDZLS+BacNzqM90hHDfRY2CxKA9Jpl8oeorWpS\r\ne9nh3ZxBmWOe3CETEFmRcq3us2PNL+lnOn13HziFL8sZr0i6PcUf1zD+2hhN\r\nD8BCJLH/3Sh3XAmusr6VKfNCd0Q6SGZCSrFKWRlljJNLfZT63kSGRdw27wy3\r\n/XJoteZYP4qtlQNpRxyNGiC4niwm0pAMt/UJWA/iplb76DAhAuFX8u2LZWcJ\r\n+3w5qRTg1j5J3dxUDo3a8OQMDD0v8H4rhZo=\r\n=2S6a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3532bec39a7d9bd14ba099a42dae2d7d863a9e4d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.1_1659530303543_0.03235536626820723","host":"s3://npm-registry-packages"}},"3.0.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ebb6631724c3b3149b23b927070198aab82978ea","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-beta.1.tgz","fileCount":1050,"integrity":"sha512-CUEOf89wvOwEWpGX/0p9/9fr9HG6p0m/TJ/Z+ua2YvIIjPTIxRPvXolOxlGkfrZdDpEQuzT8Da2cEuAb5Gvo4A==","signatures":[{"sig":"MEUCIQCMVJjvzkQp4EBiviowIYD3VXALUWQnnKelQLA3qW/ZxAIgZcEgUfZlzAU6UkbO8W0vRr4gugIGiV7yYhVTRFN9H18=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6m1rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0LQ/+PtALkizVXs9EjgoDI5EFGA1BgkLyxKgBDc8c/aJwHY8ajG+E\r\nWKCCXycYDFyOKDw6DGpyiL3PTnx9GEqvp2Xoi6gghCK1gHAM3c/7agOPRPkX\r\njGogzAYLK0ofqjDy7rp8ouAtoiEVnhOamUQmCVVzIDOjCkbwlkYBqild2Hj2\r\n35g3RTEqPJX8OJRs05vys3nU78wPuBV9h1OKyfLVVx+zvD8mcLmAd3mn2pOc\r\n1QLKMdyO4Dvvyk41CYR6S4zhWSQDSPwc3yfKLGUfoDsx3zRCHJEtiE6N5Bld\r\n5mSlA0G1bzrU8Q7ELREG4yWX7TuadN/OOYEhXJBaEkU2kdRLrNJJdq7iwfKN\r\nlmayXxTC7l+yN/9uqr7cAmDlPzH2TdUaC24ZL7wLK/ffS+Q18JwyuNXj099w\r\n8HTtIRaZgxlbXymf5V8BpN8QOZ/wDlCJd2LlDams2Biac63UquI3fAE3l4HY\r\nEW5hpu92O2ChFI8qlDVJloDo7nItIWpHUtDoZsUO5RDlTlsSg2YKv+lQLbDy\r\nuiiRDFb6x2YoFGk1HnJb2x6+0zmqMJlZKhTVlxduPvSIMueZWHT6vwpZDKs2\r\ntxVnsYcp3Md5QuP80/wHriLYUWhGpBA1f/ycgFT7YaNaLY2dS9pJEFmm5dt/\r\nHrLheJkdH7zEnIXkaO187yD0UmICME0Fr+c=\r\n=1iD3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c582d332fd76df6b44ddd04bf23f67f2d37013ba","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-beta.1_1659530603303_0.9641369032405545","host":"s3://npm-registry-packages"}},"3.0.0-feature-395ec7-l6erf83d":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-395ec7-l6erf83d","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-395ec7-l6erf83d","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"658c2570ebdaf8577fefca3446f79cf5da8aa8a5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-395ec7-l6erf83d.tgz","fileCount":1050,"integrity":"sha512-B2ABkhTdadc+g6jkZ2xJjMu8+acj2Ym7WvWNmjKsamrZD2AqLOFnn1jdX9l3kpuKlcGtr6p8e8okMi5zM5JrXg==","signatures":[{"sig":"MEQCIGunr3vWngvb71FrUIwRPgTF3+tH59uoQxBLQQWB9ddXAiAo7gmdBzFvR9lCPI01fxHOaV0y/6YkEWlT/P9i71TLaw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi63/eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrj6w/8Cq0QL1UNDZbNkZp+m1a46yPyX9O99aLPdIzkT0T/0B6uzk5n\r\nhU9Td/qKeSV1T4+Yo+7Mq6gSbyzBC/0fEBGyOYgUkINxfxfJKG07Gi2buBUj\r\nBDYg4/Wq1pNnsTjzUpgjjZz9mQp+qv+lP625a3oxnbtL5rOgs3C5SOC0wnSk\r\nLLXPYiINje53tex62UFFT7OEqm4MU0nhuai3zl/ElC/dP3rVmqBvpxdiPdVd\r\nQrpappjdydNyKkVfPFwdiVCyVXZQDMUUvwOeeBEjk/tP8uWpP2TG1rDbPIie\r\nizBrDgmLCCO5OvhWstpL+J+ClXQQhjstsy9QgfJjbuohc73YrH+eA9emZAnm\r\nnO5ocEEHt5VLj7IjJvO9KV03jeN/irPHAPHVszKjvlPz7vOskACDmzeQD0BS\r\nY+5pefD/ZrdQA+n65k/C5cewajscdchOoBlwrEYIPI/k9ZcWv29z0ggApPuS\r\nWvdKDp1qiRV+2kiGoXV94Z2OzX5kEtPQ/dy3Qhvl6zhZlqZgqFXBKHmxLLd5\r\nfdDfXvKLq1XoUTC3SENBMPCztP8iCKlXJZQuPMILi+k5T+znxKE5cb9Q3Oy/\r\nyoh2WIQLU/SRrmwZH56Kyuy6TLIUk6vBQ/M38i1EgNEOnMe8iRTX3Oa6P6kH\r\nTc+/F/BUK6li3X2Y821OtqitLyYyiz9rKDc=\r\n=LcQM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"395ec79b83badfb0fa405a1a2e1f546a50777873","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-395ec7-l6erf83d_1659600862412_0.04226015849953968","host":"s3://npm-registry-packages"}},"3.0.0-feature-6f7e2a-l6g8stvb":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-6f7e2a-l6g8stvb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-6f7e2a-l6g8stvb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"36314f39f5dfecba07acb075e0d4ff7de00348d3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-6f7e2a-l6g8stvb.tgz","fileCount":1050,"integrity":"sha512-VhF+Q+8Ljyfz/XlXTaQ7b8QU5OfKEJk2Jl+TOE40LrrMco1DZ507JBjeU/VYYZH09ajP+Mm0enP3HKcaWVAkxQ==","signatures":[{"sig":"MEYCIQDBQZcwjSdC96oBVYKOSkOMKhLHXPa4NwvrdcX3tyf6cQIhALCOoQ2Fvrs9Vdkl9WTPXzUXafRirz13mVSvDSUW1j3m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7N3+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6Hg//TzOZmQHjJLEt2hEMgRjoGatvFP5/Hn4pDjVbKq4zEpZQP32N\r\nHtqTz2HODCVdot8UCjy+H84iJzT65G0bMqq1i+7HBE0O6DCxJrEUR/UYhFHK\r\n5b/oDj8yKJPLEDizJgsDM23aFT4ViQR34VBAAwr0laMjlQmvDyrW+wokMk0C\r\nF3vLYisX0mQ/DJ7owSxwMIn1DZPMp92PwS+KFaJSk+cc3xGeuFd5Gpjp+QmS\r\nSGeTNNmegeEzavCOoyEsEtFQ/02G/2JM2kRS7ZGHdx+J9RLfi7NenEp5CSVL\r\nPQ/YCHBacLSAxHOmueFFcyel3JjobV1H8S5qQjp4tYoDJN9v+FP9RaGXNkLW\r\njr7LwoCqdovlMlulpTQEKTW6j3HaQPNvpBYc4PPFj9zhXUYG1bdJ7XrGdIwR\r\ntUXETPCCR+J3gZFpCCoAH8Vdpp2O8BKGBDjL/sCXXtd73Zkh4q8Dnr2BVB0i\r\nMnVUgxFsVzh87xfzGLmSF/Gw9MJlBIGJxYfzteGF3ojTxieo8rmZUX30yf7r\r\nSEgIL2+WTlHINyagI/JSr+e2pbddVkZA7YYGpfcUldflHXfL2FffCFkDvhGP\r\nSjkPLjHsJ8vEQDTWho2MUs96FfKrFBITCfYnMdk7ev1uJ1K/VcP8pfmyMHNk\r\n89zxkr1+fHpJipqh5j9Y6zRKi+8kSD3yjgw=\r\n=k8Os\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6f7e2aae28e159547456dae7684716c772122372","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-6f7e2a-l6g8stvb_1659690493814_0.555554491444948","host":"s3://npm-registry-packages"}},"3.0.0-feature-163215-l6kixzqh":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-163215-l6kixzqh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-163215-l6kixzqh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"349acae61c57333eec2791036acc9106e92271e7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-163215-l6kixzqh.tgz","fileCount":1050,"integrity":"sha512-ZO2pt6CZsem8k+N+qbKWa6VyYgBVVJP9UlJQpEBsZuchq3m4+wY01lfe1yn+RwXlbdHPuIFkb0AB3cRNZ9PdvA==","signatures":[{"sig":"MEUCIQCfVZ2w0E5gsQeLwAKcCvcwqZZnEih98Uu3K9URI5pR5wIgND27EARY5Oxru+ni5s1MX8ML3wFtf3E4E8EeO7nGbfQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8NF8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr06w/+J80DqaIEpfQP1aC3ROIJVDKYOtSEpX3zpxWxK4vzguTHMYch\r\nvrpB17l2n9yWHUCC210YTVNvx95z/ZlgJOqzFJhe2n7AkfHtPF8llyQS3FHb\r\nY1uMMPJvWROherJ9NF+tfnVMC0xzGVOwiDFlqmfOfMd6+hdccOoRbAuBHYgf\r\nd1TwAYBmK6tNeK6JhhZ0k6eVJRkR2JI8NjGFN1FaiReuSsRTYa/q4tso5UdA\r\nr/ar1v9HCtTNmURXMVH2Jw4wF61bqcNT8/OdPGNNMcZBkk0oefZ4J6IgcYSG\r\nnOUUgWDmz4Qehn5KeOZeT/+pH0x3LzXIfBTgWi8a2Vl/e9NWLtjQkZaThbel\r\n/czpIVty4RTCq8aXNUtTkzBxEVXLlp/FUSTKrBfDTsuwlcILDGuyISiKMBE9\r\nIuXYnOCJUx9UBTEptGXhJSBtEfiBQOhhX9TwCRYYi02USN/BsqpWfT5kioCn\r\nEPXYMk2LjRtAwdKwC5AvabBofbI+DjbBJGMGLtFhJ40Cc+TPOIwS8BESDO4D\r\nQUXkWVBep1U+vRk6SK4vV0/fImYJkJ0C2FzF8Yekp+Uc0DF35X095XQPpowE\r\nQn6jgs0z3EYqArZXRvdTwlAcK+v/GEs5cyTRhsh/XVBQBC7jJHkIlZJyu8rK\r\nA65MS6OC/z45QK0PqE9SHAyBsStIyGXPRUU=\r\n=QEgW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1632153074fd98c7e32b0439df6d28d86b1f5181","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-163215-l6kixzqh_1659949436407_0.037641750407254815","host":"s3://npm-registry-packages"}},"3.0.0-feature-2d69d4-l6kjo81j":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-2d69d4-l6kjo81j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-2d69d4-l6kjo81j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8188372014c63d246c2ca484460fa101f5a44ab9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-2d69d4-l6kjo81j.tgz","fileCount":1050,"integrity":"sha512-8GiUd9gKKRK22Cuhh6Ov9Tvgs+mOCYMbBBMU9ahy90o+fAhlhTB6tqxrgVJY6SypWI4DHVW9W2Gidw1Q48DQrg==","signatures":[{"sig":"MEUCIHgUzuIGgM6aplT2qJLA9xQbvHXpxv+VZ4tTImkNUM3aAiEAx8qPgSu6ee/68UggFMHH8k9p9BZdfmerisIGElZ4lcA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8NYyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8Sw//c/kH4QwoeJTrGRzSkk/hnbdFJ6tbrI6MaxQu/vViVjnm2aZn\r\nQhIWmvILyCtyDq6u+UpbPPFvD9shMkjdRpFEzV6FFVYH58nOFU+gSjuiGQjA\r\nQ+ohNDkflRQM0DJd+BTBs8hAKi4TpQKcDbbfJqG4e2+jnfVrhxb6LbEzoX/y\r\ngj/8CtdPUbvLv8+J47PmrRlY61KyM/RlUFj+sDjQfZnuhbQkRfdklOmh+36i\r\nMqKfEYIbwSgepLTOCsU4wcHnNbk8oHbcz6Sf7kaKRSuJgFskD7KmvQiZ2xX7\r\nTcECyg1Qr38GB+YxizSsQut61CCFEkHjCrRGv0Dn9dhJYwjUDRSkad+P5zl9\r\nmmvynOAg+js08zEkDBqyBSc7FCqF2RyEXLCLbWJHUsiRHK3Cecgw7kdYTg76\r\n6RznTWtGMy5UE+WQ92m+vtSDaqcJlSQ1Eny4h3/Ji7ajElekcp71iQ/ZYGuw\r\nwsj9hvcc97rUb+NLDjRfHV3+IMFtmRYdOgwxkepPJ51m4FGg4KCu124udmwE\r\nYOU6IzgfNJiLJCiK5frNPI3JoCJp8Yxv80r4wUrYVOyV/atkn+q19ViEdH49\r\naNG6/NtcbbOv81JwqSEl4WX/QCOPaX+9hZ31LoYBlOqakZdNGITkMNORgRYj\r\nMrEA23nhx6twLWsLDo+wTSloW9IgFlkqLRk=\r\n=FKS0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2d69d4f07776a3409c6b499ee74cb46bbbed06f1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-2d69d4-l6kjo81j_1659950641970_0.2192190645859997","host":"s3://npm-registry-packages"}},"3.0.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1f456ee28556e7e703142d4e9f0a25c1c447c066","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.2.tgz","fileCount":1050,"integrity":"sha512-W8iBzm0rzORhwMUYstA3288iIxgqtOwcduYkSQY/47sDypVxxQQvkQdg+x3V0yB/WvbH7d+WIpsHobNjlL2cOg==","signatures":[{"sig":"MEYCIQDQsdf8Eh7+reBvlkplSAjGFjfk2XZoPLj+d9RELVugTgIhAIt5D8O3t3LKru/Wz8mBJAbV/y7EMfirnWqNtURL+U+B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8OOxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrLgQ/+M43J1r0GJek0oT+IZIhVtifnh1a4wA90mkgWO1uqhJuK/S+Z\r\nvgcOSjmG/oP/mXvL4N6KDk1AI1/KJMSu0sOQyqaCM5QDPgJchMBU4sho+YR4\r\ndmY7N6ElG6SCLzhXPO5PePy67BEH0Ea8eJjz6vgLrfjh9lmRFtS9r00nN+uF\r\ngjXZ2LiDFW65x6H8QqYQO4DdRJ6CevFqCa6Qk8J1oA5v0Qg4vLL3EjZPXP7U\r\nzY7xeUQkQyw9POkdWY6UG13XAF+O++D0Ol6a4JEgKiHjZeIWlgWPRAmWTDgR\r\n5WpHRMQhMR/TjjN+feSbCdTYiTSGvTojtW2IBXluQCMHXACPn4PBZgRZJQgD\r\n9uLeWfW/w/zSfiNaCrSpCIqz802QSb1cR5Is2WsuaK+NL9RI5MlRggynxOl+\r\n+rU2T8pNb4jwJmAXoAMYNjtcjvU/6zn+xkKaRnTYAFWKW7vJOlNIm7hz2bNz\r\nGsVcvNXWkLrXLQiIhRteAxfftooZ5Mdai7NAch7RyQY82lIY/s5A6xb39LHI\r\ne0DCbZxF4JUnGsef/vYmxPgCKcGqhsMqrNoY2QVNugnlWmaEBFCu49KC5kZG\r\nvGHyoB30TH6V8W/kandCw3k8pQK7vPcZpwFNaB8aZuuBZtF8eTdca1D41ZhW\r\nGzJNmyXr2ko55Y8FKhWWTQpnR9tDoYMUvvo=\r\n=Hhv8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d18f99b1a87d101294d0d2275cfac12cbe7f9f60","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.2_1659954097654_0.44736758768057383","host":"s3://npm-registry-packages"}},"3.0.0-feature-06d8b8-l6lwc1t2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-06d8b8-l6lwc1t2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-06d8b8-l6lwc1t2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"81c12e2bf10c73fc1ff1dd50444d5b2e109b1128","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-06d8b8-l6lwc1t2.tgz","fileCount":1055,"integrity":"sha512-sjhl8f1XLoGRai+SYUzK4IyvNFjWr2Zp1CY0E6zXPhy+Gj43pJLnOJMpwvvTYLTKsTBrpL9aGu7Xhe/LRGDY+Q==","signatures":[{"sig":"MEUCIQCc7fDU+I5dIGpaAtdsZFuIY+7ZkYtdJuHfKsAKQ7PqRAIgA5NLSPRg3nDUSjzfO9hdu9qyC40BJE/J85az1W6Gq/Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8hViACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKjA/9Hcwzd0K92Ydo5nH1OMqWaCLy9M4B6wI9CUbFMB65nQ2yi2jR\r\nz+DskTXSluCpTRnJbtEd8FESiLX47Ro9n8RlgiQZh2+iAPuh0+aVTyA5mY41\r\nyTx/Vj7F3ALdkURNzH6Usx09lBxDFf77AKONPZStXzqtmwjy3IFumIvG20xh\r\ne2wsQUlRMlh0KKDkzazVdy0RVGUa6ihz3Vi2HV81ZMnit8F9sbdoiM1d6M+V\r\nGOJ9tGJ9h/p2tpDTP9H0DNpXCVYgtHfC7t1RhRxg63FBIF/vuYbqHPBqMlSM\r\nVz6SKXE/x9+Q5GdUrMSQiTzhh//470kkGoAi8fsXfqLhcFiYr+kQjWhLALKS\r\nSRisM7zb34tGp3/Gdha9tWX2G72/w6KFyrhbnZz0CrwsAFbGVNvydu1RkQIv\r\nl0eQ8Of9CwMt38RaZC7M8vLCxyWikdbQAppoRCMNEul+seo9IYUcKpxvuYOM\r\naTTEvvYk64pFecO8pVF0EM3bHxzH+dVHVSfvFpoaLgjDYJ0jLBv6JQmUvc4R\r\n8MwWrN/buWg7BUy8CENluh2Ar+lJnKtovYWPbadMIFKm5ow4sAPKtcz/ZYmM\r\nLi17Nbrb3xQukpNLahuLmjXSEz0Of3OOo/WNdyiI7Z3i6pKXErt1yeawOt4a\r\nHYf4HQAE3yQL2aLSy5qazQ+erinN8/+okQI=\r\n=CeLj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"06d8b894d72472173aedaa640a25c0d091e8beab","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-06d8b8-l6lwc1t2_1660032353835_0.6439053170482285","host":"s3://npm-registry-packages"}},"3.0.0-feature-6e35f8-l6lxb8c0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-6e35f8-l6lxb8c0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-6e35f8-l6lxb8c0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e9a421ef24c89aca6ada2d75bc8295581aa976e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-6e35f8-l6lxb8c0.tgz","fileCount":1055,"integrity":"sha512-8lMYKvchx2Fz50D5xzasRwku9bPzYgfqNgJMmGXRoXGXydcefZxaMrsca4yRNGdUcgSSlOHOHa2O92G31t5JUQ==","signatures":[{"sig":"MEUCID0uCkb2J55DozPlelXO2pnsV4ozm3dzq0jmrEFz9TUuAiEA73lGJGQVCfMfyjwmdSsk+IbzdCziOP90dwyAmFcrkDI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8hvQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmSA//SvIbbg1ZmnDqtWFX0/kUOkDSRVsMozZHuIyRoxZrL3Wlqn15\r\n3To1heNyricGBopSRx98sSXcJrOlsxB1DTLwbFuRRRMZ/SwlQT43TrcWunDL\r\nYVCP9KyMZBeXWOVw0oajqmAASG7i0X9olg+dM//0bVJzXNn6XRlj6nOqlT+4\r\nRo/K3SMOduhsZ13gI3rBXBx8CQVmP1skaNQdchpgY0LPm5ldU+62gPorONdU\r\nGpF2rijDetJ6ryZMiAZYXxI+7UDJ0SYbb1DePZESZ7gP+LiZy3aSFIfBamdE\r\nbxGRJE5y1nN5tzSrnRQSlnB1V68Wl6fQbXqL6vwPLKg3G9Tu6DZNJcVjI3i3\r\nRLzqmCNHfjoAR4mSAddtd4qDZfJXVyId0GmevGgdrKGCNjYO0mfRC9lwCjFb\r\nhkgR3b/MdOqCd7R5HRBbzSKEXAfO2L7uzGzHv+dLbGfKDUj1hvH83x+uGWcn\r\nDlP6AWjN5CNeoWnMFHK0dLHIEgI2gexKMsXKHr0GQl8bov0TQbtwfQzDBagJ\r\neJXd0FQWhc54T9z3cwamsMbuRMbEcIV8ggzqwgQNw4pC0Rqag607sjrRB3kC\r\nZqYBDIQaxpUXukVQdkrKTWOJ33+9WvccVktz9PTBsYoWMD3TC0TfAM06uK0P\r\naia3FFfKHNox6dkoUkytnNs7+gEJ6zNBQsw=\r\n=67C1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6e35f81fc77a993711036fd6feb76954e042ec8c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-6e35f8-l6lxb8c0_1660033999722_0.4909768479711418","host":"s3://npm-registry-packages"}},"3.0.0-feature-06e6c0-l6ncakel":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-06e6c0-l6ncakel","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-06e6c0-l6ncakel","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"93ae7ed1273fdd509afd37effa10ea6366d271c9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-06e6c0-l6ncakel.tgz","fileCount":1055,"integrity":"sha512-Tp8XSJzFvJe83qbe3wMBLmmWPLiS2wMida5hs/Aybcp+RlLplyjhzxZWBcpQxebvZsCSU+VodT5uXnOePWrxLQ==","signatures":[{"sig":"MEQCIH0WsyJRBo6JcOGV+B4GeeSwSj4yW7lasb0JgyUTrG2PAiBS32Oqe69QZM9hwappaxKkGbwvOqh2Ij58u8dAoZmQpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi82pMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmratxAAhFLlbpLGuR1AIykuvewremGCeM9BQoc0BOSQEn/zA+Ijgw2i\r\nC9T/TPjKvx/rCIpUfkRafzv4AWfdZTkKtlNHmMkHOAZQtvUTjPqaNZwV25CK\r\nPhjICQ8bnjAZ0OL/EsxrXLpP/TqvrAAFHvX5pVuZBQxQfU7/qBP/h1EZRkYF\r\nP4CwLKRBd5jJ36x0uYoZeAw7HFk8yheA0enElsXDAP1a6HlYTttq357P5xTW\r\nG4MO8QHQaC0lMeznavtxpewdipArDnwW4uOKMW8gT9VZ7mXP5DPbfUE/Gw94\r\nKnYGRhHFD2788H2sB7uevrKHz2af60I/Fu1G2yN7LS0fcvLnTKHB1+folIIK\r\nmxmWxgo2Asmv4+qJu9AXpF8pVvyk3PKO3FCP8TK3dEZXQ46iFZs0niO5dSxs\r\nBvtIBA2RPxhUVqXIVSzyZzwiYJG/337Shize2W1+Ce35tQbtvdcF2vKWmTBo\r\nf50Qz/0um/EwFEV9EsOCrr0vMdV8uzlcaCLcfuVr5zUubsjMxw8wSmOB8mxW\r\naWFSkQEn39aFgimYgFnffAVPTP/6764z448S9uEVIQxi+JmK9Vvmq4dft3eF\r\ncii4M1Q4YX5gc94Z0TBRxBXL9YEPlVelIVbLtkNzcTV7FyCaSufCF/VXiooL\r\ndE5/zEt7U/gZWh5swsa+3mIpsc9m9TeOysA=\r\n=DSGD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"06e6c0ed8072385487aba5c48b44a6e08140463d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-06e6c0-l6ncakel_1660119627708_0.8525032193119029","host":"s3://npm-registry-packages"}},"3.0.0-feature-f890e6-l6ncb7ay":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f890e6-l6ncb7ay","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f890e6-l6ncb7ay","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f1ab558a4e08aaa4354c96d3d184b4dac0bbf1ba","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f890e6-l6ncb7ay.tgz","fileCount":1055,"integrity":"sha512-J5/KC9VzNqABBVkdjjbT/2FRdTOtegEhkIHdAyWU37aC8mC4msPIKmm3b4txGR5gZmVjiCNgnLkbRQ5RYFzgXA==","signatures":[{"sig":"MEQCIBkYAcdHeybynjeNlptzXsJbdbTldvzm/nJPrnc1ITjzAiAjih5MFo4Rm7Ta1+S+KnLIiWMPYxHiqGKit3LpuMhe3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi82pnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqjKw/9EIWYpSLPPJp9uO/nYmP4xwWGm8SQs3EEc4CTywlV4zqlXKtc\r\nXZGhMD4SvztlXFii+dRQmMg2VAyvlJll8khy25TXotG5ackRmgeK4k0ZImCJ\r\nL7O04v2cQeEm4e3JT+8siVfDJUg6vM68nX8a99mTxfJtboq909rYrC8Xefe2\r\nvjQU0BOExWqlc3FHnJ06au3fx9+WZFlnlcn0thJL47dPjfw3YuK2DJ1EmKAF\r\nulwzFQz9wRiMx9LPO9ex/KMt2G4Dha7P30d4t5GuOiHoYl9EYx29UYzWmIV7\r\n2XonHmaB6xwYqL58J1quMiY9hEWSnhs4zks6p5rCV0dH5DZdaruJHJzj0QVg\r\nYy9owwo+DauN0dL6h60rqM6tK68OXAQ4OYcH9zFgTByLUzS7Txmx7xP5+LZm\r\nbKNtmf4UoQA4v0ow9qqj5lRSR4GhVWDsAFCEJeY/2TOd/xeUUUOv/SsrXyh6\r\nTd4TZ8YDQ+uQkgWkFsS4PuQkiTNyV8Zg0o3vmfi5hR0YaQ8SPJMJ1lbijuwR\r\nDoTdEczlxMsoyEJXvakUFPKtbYHGyqgUJ+BvF3uTkqOp36CIYzc+Z51Y+C+P\r\nZQ867cS4vVmHa5vE0mlsUeYfBdq71G4CnZpb4d27VXE5cnxLjvzXEWHMEupH\r\nyv7b8yEE/vseFKDwvlc7XVSBvD8uZiLU1yU=\r\n=Lbbj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f890e6dd85322bf59747c64ed622ed1a2edeee35","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f890e6-l6ncb7ay_1660119655268_0.00020836563424664334","host":"s3://npm-registry-packages"}},"3.0.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0c0dbfb2dd0dff9d1d30f6d1f17b56304e10bbce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-beta.2.tgz","fileCount":1050,"integrity":"sha512-Yrzjg+q47/t1whxpllw6Jqs9ltuzlntT2WkTRAfr/BzYPJwUx0p6+iW9zB5NDhdMBpoRjmTH8R5J/g1Ow0AIyQ==","signatures":[{"sig":"MEUCIG5KbrEQ3FXX28GZbAX3jGY6+AjgIczfzYyQMm68bWwKAiEA8wblKJJXH+s9cpIpKJ2WLPydgiV0sy+bCpGKnbgo4ig=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi84PuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq03Q//RJhidt125ShwWw+H9YzJtm26aA8Z2i3OmUC+tTELhykL1KCk\r\n2/l0QvNx/N8F8LU2TBJLhIQBE1+pA0a1Kk1lUo6IuZuIed2H8BQnfTuCnDZv\r\n7vf53mtuhdgd2Eb4QC18thGocXuOcFE15+I1rfYKmcDvJvPe0LM34VS1cgz5\r\nafJ6LLCu/JpdHTEZvwDBn7vHkYnTACNLEXIoWDq7NLdf8X1vhw+KArhwoB8B\r\niIEQe+ZQP1CGxpwmFSVaX7C5YneWTgLqEeOpHF7sashTPu5D258SihtmhjMe\r\niJwptbWk4ykmStdvTWoU/u3ukUUVY8nsUwoScC7HHTQkqsk5DmRSFLd//ndQ\r\nGWybAit659Zq0N1vfZXjFRyp0NZQW8JKB+jUSscQQHu+PucqVFtPss3jYsd4\r\nw5h63dq/mSYd5ZL8MlOC0FFGk/CG4Dr/Xnr7MM1zEz3EsQp+H1yZKfXwmfOj\r\n5rSn/9XYjc7U0+YAWEhsD2qA9Bz8LR5qszW7UcSoiDJEjN9hp8K4OKoCmFJp\r\n9U1gVcPYaGz4foqjYfMASKNE/bM2FnslzaffijmjCsdri2We3AK/dn+2DoqV\r\ndl7Lvhsq9Q5QODqEm1rSyU/DwwRlc3qY0jPZbUOqoctpapZwjjH5jdugi7W3\r\nhID3Y/brGlzyiNAVkaiChGjUX8cNAxlrWLs=\r\n=zlp8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7783238105e273bf771db204448c67ea742ef0d6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-beta.2_1660126189700_0.9050943841625152","host":"s3://npm-registry-packages"}},"3.0.0-feature-38a940-l6p2vk43":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-38a940-l6p2vk43","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-38a940-l6p2vk43","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2a1fa3344bd29de111fda1ed996b42ec59413e1a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-38a940-l6p2vk43.tgz","fileCount":1050,"integrity":"sha512-lL72a+i01lI9SHQDxSL2fkfuL50R3fyJ2CvnP4eFOydwSq9n4iN4itns6oz0I5+Mn+D2CY9rhCjNdmptEaLPyQ==","signatures":[{"sig":"MEQCIC6sqaJVqKDRNpP/qRJ9Pv3toVlp295pT18VeuX4I95WAiA5dlTNAahp2nH9vI2WvnUIxjfQdZIzsONt+SzMJ2xoqQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9QTlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6nw//eFpdEl32GDcZJ4t2X7+53xIv1I+ns0dKoZBAVxEZNANXiPto\r\nk6ogXNiUbuHBADzpedFXybdLkVKAhduixEB8PW1dQT7YU8PG+K3lwQmUnFxK\r\n8xwbOoUrWHsWzcXgDUD8gk3gGalxtqVNp5SlOyg2jBtDULIKALmKIIXehmCB\r\nQT1TU3GcLWNGh4DRMJa04KRNLRshKoPQiFrSEuH4k1q+xsWsEQLFinGrJBlo\r\ne9lA0bQ8uWM2/Yfth9+Y/v66f16TCoNQNwwlOp7kEIgS0InCWy3qNbG5zu/j\r\n/i1aFX/65sbU1b5U9eYJjAEe4DGMK2iBFLso9L6sWG4DjMeyVtRMFcBkfIoB\r\nhiIy5x61YYZv8QZSaV1PQnpYSLXA0rI+e+lbIIlWo8Ron4WuaF6DWHT1nz1Y\r\ner+ZQt8/iW50VfRloqrPjAXnWKMZ61/VAaJlQlNqomNMp/dcGHwSpxu9Y7mz\r\nanwSGOFvwvolkVLy5fMUI9RzOJDFh7I0sDqWevdv7VbOnj0xARueI5cIfu9/\r\nq2QmN5R3BVBJWe08QLVKFzS59vuHxLhdGjqYy4YKUqXHOZ8OzGMt1/C00Ypx\r\n+H3y30zytiqg8tFWtIsg2igyhjp76/fccYldihr6HyT5p93RZuHs7MzIx8dz\r\nFSjBOm6NL4g/ThsSiN5iLfoxc5VaQf7F9xg=\r\n=YsNs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"38a940af9b5d5261db7e4e0103dcd609b124eb00","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-38a940-l6p2vk43_1660224741185_0.18583893319037026","host":"s3://npm-registry-packages"}},"3.0.0-feature-561067-l6p31kh8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-561067-l6p31kh8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-561067-l6p31kh8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7cd976a97d82f779cadbc6d3484a2a1f770d772f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-561067-l6p31kh8.tgz","fileCount":1050,"integrity":"sha512-OiOtzHweRZFKnnHUQB2ey7ZYNYSI1LYnIfvLdbp9q8vv67pij2n9EJcjOLRaMWNPk+pnW+jY6/D55bKQg3poMw==","signatures":[{"sig":"MEYCIQDr5pzAaVc2O2YO1i8gssIrCasDwNtHLCTzMT9wMJ8ZYgIhANsWv5K7vmbqVsqNOoqY4/rsuyoz0W1ZcbNZ2wamQ4F5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9QYBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpOFw/9GqshmeuS8k7OlyNDDJZrVR8QUVl5joE5PbIC2SDYoI23md6A\r\nhCROo7sLUdBnvjkW9ugm1A8Y7d0haadieWN2/L6S5KPMCPlG2BbuSpeqzfbt\r\nBYIXhD549k+DvbhNpSRSQHKDa9i7q2Q4XOSCALP2x8811UdSdTzgy0i93ljM\r\nE1z22R2NhuW5DxqMh5WA3lwTRxuIw5WFXnriiQevpmwceOrxCUxEhuLun5nS\r\nR0CGLirKO9sSthy79E6+hzjvVuRWzHhHsr0E6FyxaHUsf3BPOtr/V7fFDhv7\r\ns2oTpCMM+XetA8sJfIeceztxb5d0y14/HFkYrUK/KPs39GP+vlO88KLfdzP5\r\nw0dJ4ANLXFXvtS8xgIxTg1ybDxu+DsekEZgCf5KzndaD+bu46nAdLBig03YA\r\nR1E7/S7/a+GV8Ho0D7kPi1k/dzW7N64ss+CfZTG3Zf5QUqxWFqceQGavcx41\r\nl+dXkrhrmcX2jJ4H/SpIet6WJ9Xt2N8pZImnoUZYn0NuYPaJywCMR9k8DkoM\r\n29L5v3FegxdbT1AwLz9wW5FlNv6/J3CIK5i/n226m2+FIz7Xmqxo60rBtmKq\r\nh95hnKrVr6loFR4ovvUAjj/Mj0iITsPJO6QVlDHsi9YaINZuEOaOvFbAZy/6\r\nks11vRdGK7xpvLwWJ9KurmcYdwYA+jbShVA=\r\n=f/rR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"561067be89f44099df3236812f241b7dfbefc3fb","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-561067-l6p31kh8_1660225025049_0.7336182188005844","host":"s3://npm-registry-packages"}},"3.0.0-feature-9566c4-l6q6nt26":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-9566c4-l6q6nt26","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-9566c4-l6q6nt26","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ea92e6a6eed2ec812164906a8ed6cabcf8fb0d6a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-9566c4-l6q6nt26.tgz","fileCount":1050,"integrity":"sha512-eu+uqn1MrsPooglrMb4sfOF+NlLVTcuZX8v4je+OAQyH6+POA/iACQzN3vdBxdrezUqAhuCvzW70KhZP9yYSnw==","signatures":[{"sig":"MEYCIQDmPSj8hXqHvWo4v3BGYoDCdi+vA0mQNdd1NTW6Xpli1QIhAPcxdlXTAB93lGE3jZnh7ec2TctxFmJoMasyFLQVX5TA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9gnxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoiqQ//SLpDCLkOYP38vPHqEAAwovdUvQjtMziW1MkhBeKkrgtMx/8D\r\nzsThuLidyAhvpMp6KG0RlsNEgffs3TMetrUpCBtfWnToSssqgeXTbq4CrabP\r\nunLlBHWz8wqbiHUzb7zGOzZlmvSi1OWjlbCW/zQ+q+1xXcyWfyfTFQmpvV1e\r\nfn9g9VrqCtmFQ+cVkufshOnhXqcxPLNpX0QKYNhYsjrSZwGfFDe8qRwA9pqq\r\nacum/65ICQgBrwDtyX0WvOB6F2H9t2ItErhtEo1/wBkbsSztXOvDzqzkqrMg\r\ngPjJvklHJtxMHAhqJ8qFIU8L/bu3HcTuF1P6pWOSqTvIRipvtc5RLBbEgMvS\r\n+OhU4fcpXcPbIEoUCoFJ2qllvZqebYugXKu2nu6xedEyS9RoPGAzegjaoFoB\r\nnm8m5iswEWxzaQSlyKKqYexe7YS62+4oPbWFZrtuTNsVBmlzBmPBtSmBHG3U\r\nJ8QX2dOmkb8o/YdBwMUcvhkS9qEqBqhrli3wKLnEi5VbCHN7qVPQnlgfBVjr\r\nJQBJ1J0lcUSMvBXcJxzAVqhFRTZ+KdWKL49T2GXxt+/mJsvv4cHE/WRVkU4O\r\nvaw0MVH5n3eAJNW08YxN8PCKzXGBFz4dmKYZsNaqtVsWaMomEWoPS07J6ijv\r\nqFsYoHA5LrXDQObgZTU3e8wB+rFr+4jlaw4=\r\n=uK+F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9566c4c63c7aec3b0f350d67d73085b7fe40acf7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-9566c4-l6q6nt26_1660291569125_0.21305663782392426","host":"s3://npm-registry-packages"}},"3.0.0-feature-2877ee-l6q8dpq2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-2877ee-l6q8dpq2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-2877ee-l6q8dpq2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5f06f06384f3cb0e3d97db560bf47512c8f38743","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-2877ee-l6q8dpq2.tgz","fileCount":1050,"integrity":"sha512-VplVTnrvDqXPWVf6NXItb9cv+riHFRIfvhYRTxd71Gt91PqLMbrBRErAyPa1HulmUuwZcySddKSAicMfCVL5Og==","signatures":[{"sig":"MEYCIQD+iSPnNsp4pb66x2WRHJRyxt93oicSeEKpt9hZ65zZNgIhAMlxXFJDwKEmrzZgRaWxshnpcteTbITrnAQAv0BMXU58","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9hU5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgNQ//eZxig82xn9JU8lt/QWyy+mDPbVbh7Eq0aOJNTcyntUiEVbH6\r\nba+f0tIGRRwUhF3mQDykUIOqRRQR69l0KsNsNkjnw2pDUHac4gbtk7O3/iVh\r\nz9ILhoTyPBgfTAozgMBswaXS2XZee3gXqW5fdtPEH19Z9XyxwJ0qh9FAOFUr\r\ncG/2bGEA2ttVEmOEgcoribsl0YP+FgKxufaqoIOhbxFTQLz+gic+ri76Gk7+\r\nDIU4ElbQ2taaIQEVXtf4La54BtIaurUie1yieg6vF7xsXX1d7RtnDeWu/FZa\r\nZ+Hunp1ys3zM6CLk0IKIbrWwMS+9iNmeHfXIOkQUwll5NbL8MlJBlKGWlVxn\r\nvw8Wg5h931Uru8nmA6LRDfXXSsgjFbkQ8nO7GJi9f9Jrxk7Ehj/KKqv7d1Rh\r\nvb9yyQli0/J4s9kqTtst0inUkuIBVsSLvnvBdXiwoXqDdAPmiuXwYAAZNpFM\r\n1SH41d0aeAxEIFNW2cxbKhOoiwJBfmlGeI8pUpsg9787wtxPMYIn/fgASIMu\r\ni2aS0Ts7by0XNTbbdMgtufnfxOSnzRF+Avh+98Dy+woXUvKvWaKN07m4l6Ou\r\nkMa00HmhvInbUsYuQfb9XoznUihrg0km/Xhzg8YzYx6QNSUlWsBFb/VN6v60\r\nAGovyiOV9rMcGTR4/Jy2CDdlpyIPc8A4z/Q=\r\n=nJaO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2877ee06fa352b72886998b686f4172de3bf3df9","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-2877ee-l6q8dpq2_1660294456720_0.008318842966917206","host":"s3://npm-registry-packages"}},"3.0.0-feature-5e13fa-l6qg79d6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-5e13fa-l6qg79d6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-5e13fa-l6qg79d6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4f59948ddab372f7a371fbd747f901adc86afa8a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-5e13fa-l6qg79d6.tgz","fileCount":1050,"integrity":"sha512-kVobhIoqbLbwSXUXNVYTRSwCcOo6Bz8aOOrdWXAxNwG9Qs7LwyppvB6HZf+kFKv6/1rycSY49Eb8esoJszwisw==","signatures":[{"sig":"MEUCIQDaiygBLYKdZwIuKXw04rao0SjnmKs65DIKFUmqf+nOuQIgI1xLbzgd0bUH62tPNYES1pD1MVFnRgyB3VWiFntBIlQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9kimACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGgw/9G3uXG1U6e4RfvCPtO9bjDc7qJkDYEspLfyDCFvk+DI2Kf/Aw\r\nRwxjb/fqujqdYu0+eZge0MoFk6/y66VkGCJ4dbpOai33bQjGpyvHwBUlRV0K\r\nhC44NYirEPh8LUZqzNCve2mnKFH3wWZ4aIrysLcI+QA5pS1adtrqImfEnInu\r\nb2P6AuJiBxydOWMzsGm5RZfuawklAzjbq6bDBX0DLz9NGD6WcSCCEiBk8m82\r\nl5sLEfaFhAs8jEJHj3mWGcxpj6q47W/s6M3jDTEcxixbxSLE3jZQXNY5fJwk\r\np5o/BONdfJAIoUI+7a6gaN1AN5uk6tPFzKBEBAwyz+C5DUkRoC8ADvLBgXDR\r\nI8lYXZsxRqz0b2HqnOV5pXkxPOh4uWMDbKInoHcGFGROowzP+oBwvMSogV2d\r\n5FJDt5n6nrrtbXOd5gOkI0kAQhmaFjbZwjaOp5i42GqzqAxOMCgcfctGoNP2\r\nS0a+4hr1cnU4lTEympn4BjLhwRlwuxQ8L4QKXSeUiQVllroEZOwBZcjLI7Wn\r\nMSe8C4rd0BMfjoHuD+zUQCuIbDxdnwRCNE4YCbtinSaa6F9LipYKxjJbyNaZ\r\ntGpgo6BTdqoQ4VLqngaTAwlI/9gXLgd/cJQlq6UGgOTwtVB+JI/VCoA2oql9\r\ngsV/cd3PGUt+bzaKDhO6tHBScjHN8c+GEec=\r\n=1H5X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5e13fa84b2a861919ac100b9d24ef4cd2fcd8d15","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-5e13fa-l6qg79d6_1660307622172_0.6020207611881478","host":"s3://npm-registry-packages"}},"3.0.0-feature-e6ae3b-l6qglga6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-e6ae3b-l6qglga6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-e6ae3b-l6qglga6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d9c18a85fb13624ddc1f39dbfb34f1e448afcc9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-e6ae3b-l6qglga6.tgz","fileCount":1050,"integrity":"sha512-LURulbjq0cnlyfFPlZnCyN7UoiImnwlBSqmezvVz5zTXMp/NNmL3I4Lv1PPtPqEifb5nbAbDBgF5UThsUCMcXA==","signatures":[{"sig":"MEYCIQD9ci9SBldakdsUOt/1P2CbaoxlGtJL/SX9Bix8oopXMwIhAM2Dh9+xg2LfSlYtX2wUzm40A4XJCCFe0imVQxxEqlDc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9ksjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZUA//Ul0Xv7ulcohtPcLxBi77101HgAvhOOJai8hjmiEBsZ7t68QF\r\nvIyAvz6exLQIgk98l9Z56SxgCmxFFY9BNnIIA3rIHNx3tTenROYubKsiXbTT\r\nGgk4Ky14YwKI9CR/LW67ehq6XZ4W+tlcdYL4Z9ZpCM9XTp3L13aOjbCnf2XO\r\n2SB/JBel55MulfK+x5Zng9RA7btEsYlbPrH8FO822nYN948ImQLnZLinpyrR\r\n3ZuspZjFioKldRXeLXxshL2wSqjoBe1ANC3lerUY3L6ctRcSI9MF7qyfRvCf\r\niULGT3BEc+MmatqvyYuHqx12oV+0O4viyIu6ZT6raKICkZf2jssvauuyfWDJ\r\nB+gjjOePg1v9inCejZ1BVvs1C30RAdgkbYYjkPsQsSvcs04G7b8YYe2Emhdn\r\nLYbsmCl+Q/RBOjDlFlB1miK7NO+m7iDqKV1GqkSNLs8cBu76I/SjAry4w7Lx\r\nZ+EpzlC2jGCDlTE48Ju2dCW0WIvOUKrrOBL/BwZvzc0Dp6+rOSgwSOvVjJnt\r\nBx2oSubA4VJtJRjVE68jxLzuTRzJVm02ZETPde5W8lCOdmnBoN56+9H7iJoI\r\n0K5Ias2H+QDGD0Pk5NBHT8YfxYDy5EhMle5dhaSQi0oxTLxqfu+WyQvKvWau\r\nRH3fBvCx6Ea206/6c9j6vDOP5AOx46P6Ze4=\r\n=p+wT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e6ae3b3ddb52ea444051a46ccbdca944c5f919e4","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-e6ae3b-l6qglga6_1660308259405_0.10935074794779998","host":"s3://npm-registry-packages"}},"3.0.0-feature-714710-l6vteyyw":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-714710-l6vteyyw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-714710-l6vteyyw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dfb9f9f04858433b609d322e2ab37937222d47bc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-714710-l6vteyyw.tgz","fileCount":1050,"integrity":"sha512-zXYZ0NjEVZIOOcqMkzdk+Be/27cpFZwKBwGkMXwmeNmod+62xGnKHMnBTZPitfhRT0likfS0PmxDKtBL/OcNXQ==","signatures":[{"sig":"MEQCIDExYoDW9UFdcsjki8C+kW7H7WYAlk61zFwy0xKLWmPoAiAjnXeLaA7OqIH9G4nRVq7a79s1H6Dctdxj+9OL2YwdlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1784656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+zxbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqvEA/9G8V+U8D8e7Nvv213c2GCN9gaOsn0XvYwq4t/lmOwmhJFr76e\r\nZluXLfsYvFlhn0MAPffb/HEClLh8G9dvpe/kaPf/fTq0MmeJcg49PmvNKZOv\r\nloMpZob10TaJIrIuBd0pRnwmudAPl3efq/gykiK4H7p62htYRdQ4BGScLNte\r\n2KCE0ERvE8kmkTIttQxebgOVuO0FzDFz5bORRP9fDZWexweU5OJRVKgltXR7\r\nnmNZWbswCw0V8UNr3aDwxQxksSAC3MwBQ1sZQFffFIwnmB7CwTNzhHH8gldD\r\nZf8P0fHyG2NVag8iW6N9SYJMPclFrq7e3fDMpQbVttZAQLlvLXXySU4OpaSb\r\nnOQ01XaqrXtF5lJd8sYFayM9h8uqzik90D48qDE5/GadKydSkP4btmOQPo+P\r\nA5Anyy9F9xXZoxLQWliFINc0WNTgkkxzVSzQSZkKOu8KTRgf+3vOvwFW8FuN\r\nJ+1qbLNBYkZAY+gg65fkZ7tlLG6Wymf6rT8Yac0vBOEPbwyIxeqGq80fg+tt\r\nLivrwcTIu2PgepkozTFknzYT4wuCucYKllw+DduRe/7p6jZeLcEEyF8T29iC\r\nkmXJuHzOOuvG3zOiL856l+bnS1r6HxmjmB7l3Uz+xE4xOCxjrqc8rA2bQ1F8\r\nSuJ7B6GKPC1fZ11jUw+I/PaTZ+8Zsqf6ZBI=\r\n=p9Af\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"71471090950d6f3a4cecfe44d5b86859254aba73","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-714710-l6vteyyw_1660632155427_0.9996929462534438","host":"s3://npm-registry-packages"}},"3.0.0-feature-ef8505-l6w3q1a2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-ef8505-l6w3q1a2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-ef8505-l6w3q1a2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4981db88f2be7b601b0c2a2b9416525ff6a8645e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-ef8505-l6w3q1a2.tgz","fileCount":1055,"integrity":"sha512-ewFZO2AyB8pAqPOnJe+Al6Cmu4bJXz6l7oI5T/U5XN1ICvFgTa7xdrm4kNkJuObM7nz39vTztUQVgMpeOUN7GA==","signatures":[{"sig":"MEYCIQDIXL5Ej+6Jn3SjzSRrrInm1ruTyhhFx99k5YMIORryOwIhAO8roDIEKsV4Y8k2HpLYJu1UDyqBwG1dc+93sRc/30qc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+3/8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6Nw/9GWjotJWJI79u8kZ8F2fspFyhs/EPRjypzQzMB6g0lKBQwhT8\r\nOJBN04AqvndpFgbMtqmdF9CkWQJmVnkwBtIKEqSEJqobp4xxaVqsVCJTuM89\r\nPdJjRbEELAhY35HQwR7XUW5Pj9sS7vXN7sLZn8fZlujMdnaxF1oIUKLkcCS4\r\nmrSD6nYFK0XEst3+dXZHRz2mfxY8tA5/dIo4VTLZ1VeyPLhLxtQkvEC8BF9O\r\n9LHDvMgoZa32t+FVY1xXjOG4AqpKxyjPkqH7sxS0NMpZsgwqVIGXfI5+691r\r\ncOnJj53RB41ZbmBYrYqiCgBRKBRqrO/EM38v+6SDxpmm95LIahp72dpeGdB/\r\n2aF26nHWRMVGqUZ6F0632xc6sbRUZYon0sEvlFtiaBVoJgLleoHONg6N7Z0p\r\n7+rGns0/YYFDU3NXe/yOs4Xz2sxYBjymsEfpiQgQQ0oQeuHTqUhqRhCtSDvA\r\nVAgeHjWXo6AZ+TiW5CE1CoUnzpmPHiSJXbpsyVW6z3TMHoYmIPSgzP24SUrd\r\n9JPdEFYQrVM5XZx8nTDJVMbD7hCGXQyynU4FMxW3MBb7fItNGc6fpkqAkq8i\r\nbHRV/2TX/j0Dc8rcfwS/B+/EXn9UUQbp3ZQBw9MV3zBUR68Nz1oSL40suWD6\r\n6OwJtVKyuwkRKY0FB4rbo3pH6d2eyUhg0c0=\r\n=9PxO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ef8505703b67209188569207c9dad7b2d60b650d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-ef8505-l6w3q1a2_1660649468343_0.5421368744082591","host":"s3://npm-registry-packages"}},"3.0.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f752e12ef39513214c4a77859926ad24cc60359c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.3.tgz","fileCount":1055,"integrity":"sha512-Dm6irfEvlZgT1POjpOd2yZaF714+sfw0RcGcqRxjP4J44QTV5aGGDkljO7x1+fmWjEcxqfzmiqGod6BsVldTdw==","signatures":[{"sig":"MEYCIQDxD1fLbT/mqGrQ8wrI6TyTvCAmr+dPbqZIoUJQhjamlwIhAJThxlA2NDNS43t/rlcQHWn912dqIJH/sksuhw/Bqiyr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+4GMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzJQ/+Lx8cu9d/CN7rTzyMRyVsSrmuo8GP5d3NedzIXoMZUBWixRGe\r\nApTzqwL+kkm1OKY/kgVYUKeZKtPYHW4wdREbvisIrEuyP3P0GhJ2LmErzjqy\r\nEkrSIK2yV3OkU2NZuTf3iEJ3fI4TmZXuTlO5JNX0vlU3GUuWdxRN5eVQEQ4s\r\n5dqmpm3y4BquZzn/zaEqLhsir0w2mkfSCCPgk7xSBaN8ChM5fITG3P1ZPfsq\r\nVB62lGBXFO51ku24++MnDohitzL6LJppUWyCLap3hbiYouI7h+3cDGx7sTwc\r\nmJBVqLdDqlehXLTXIK6QMJkQqu6hPVe8mcEk4J234f8patyeSiCW8ekOE8JM\r\nsIdVxwfUZAIGCZ2qEXYLeYwXyGQHaPo07mQgL+9d2raStt+yVVHUocZdbcwI\r\nHpCtr5MGlT4ba50IY8UXL08pvuKQzZr//2zNCnz8wNCC6IbonSD7MsADsX1+\r\nJGYMWkfI1MHG7HsGWGWPLhy64mBM9zD4TzhocRPP5uOgfBz5C4fUgM2wbKAL\r\nMnUVPOWJu5KqCDWecUfrJdS5EJ9LGGaTDArx239lnYLVwJhx7AQtH4esITL6\r\nN+/ozaUYEeW1X/APs3Yt2oCLA5xV4LDCb/A9aZS8sqzG7L7Ikr5UqHtMSeG3\r\nb2dTUAlYXfz9s1TtSlh4tRe/0Hgn+RDtcZc=\r\n=7BPr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2f347d107ed93ee199b6948ae42d4d1e783aea5f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.3_1660649868159_0.5007196689223421","host":"s3://npm-registry-packages"}},"3.0.0-feature-e4b3e3-l6xeyhgy":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-e4b3e3-l6xeyhgy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-e4b3e3-l6xeyhgy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0195f50a60e86223a2eb81b058e6d746a552cac3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-e4b3e3-l6xeyhgy.tgz","fileCount":1055,"integrity":"sha512-PhVOGnQMg0IIRpaWz7Rv+Q9/Ac7XHXf+oKiPq+j2uz2qMrrFD+qlE0BLspzHi82cUuVmmOnyEGYRmzthtdYIiA==","signatures":[{"sig":"MEUCIQDlzk+zVSiNG3C3bJyCrr7hTiR6eNrXmqRsx6KIl8N9zAIgf2qgLYXWTlfx1gO8zKLQFr32sGLWp9Nj60njlmCV6iA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/LW7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEuRAAgnU1aCai+0+HIdKoAs5ISGgMuXi68mflW3GLC53Xh/Lkt1fm\r\nVdafxYvzHMiCkpfG2015kzeiSfD6faniel3ApqGz9PA5udOvKs7/TOH2dfo7\r\n1+Vb45bW8WDWvR7kuQNnecokzL+iTDTGA4ioqxRvTNaU2a22ahjdGlq7tBzV\r\nm5VsFfjFlwDiibK6h+Htg74pIFedV4QE6JpVIJ/9mPWqMAU1s6/Pnd83tAsb\r\nXTwdrcOSkL3tMmuBXrl4A9eY3iX0vDJQ8G7UOW9Zkeu3OeWU4tlOJjpQZOZJ\r\noR4I5VTxih1B8Z3boV5R/DW/eoHAvYsz1UnFBSwig1xSvid+hvHqNkfp9S4a\r\nVjML6L4W0DHS17GAH+baO+ixCE2hXFv87aXX7u11m2m2wCxYOrG+nZ6mCDXU\r\nHdIweaQCPKNLA1D91LlKiZwUoKkNRcUMku5zPo517H+efSXrqMSKvd8hNamn\r\nnWBTG5sxy7JmatRX5h+6NDQDGJEoGKaGGk9ScYveo1S5uo2v1dHuadFbXbfB\r\nLRGAoqBUv92x6r8iUufx4DU8uo1h+YNu/KIZuTQsoXlsuhYB7ABsoedjGQdf\r\nkxawsOeGsEzAuJG7OAxoIcsvxlriClNYjweAOtacK+/F9M3bxQ8aFBo2EcOl\r\nR9ydyhnOgxYmIW6MBpnujqoMbeHEPH81Chk=\r\n=aXUb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e4b3e369b37bdcdef5d36fc0eb4e48b1453e5753","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-e4b3e3-l6xeyhgy_1660728763045_0.20070486348572647","host":"s3://npm-registry-packages"}},"3.0.0-feature-4ac4c5-l6xhf5zj":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-4ac4c5-l6xhf5zj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-4ac4c5-l6xhf5zj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9b5441904928df6f8ea9cdcd9ec0c8af354ffba9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-4ac4c5-l6xhf5zj.tgz","fileCount":1055,"integrity":"sha512-2/PcRjU7MerEIFj5eHT1OcmfJoYWzDMpyCVDK4aY37AG1wkdEJrhfPqSitHH4GdJMjxyZxMkO/AWpclK5T2TUQ==","signatures":[{"sig":"MEUCIGeEY8l+RcxpWsk0t1FTtCa8d5R1He8YfwKsc/9UyCDKAiEAvGBtwpvqX9mSHGOa+q8+7Qd4WlOX2oM9oH/JSuXLGMw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/MXoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFmQ/+JssDO82kSE/J5tF8KqKE08Z6UM3L/L/DH6zxwVHR0/YGcALR\r\ngGD1HoQ/EuJGQrSLuTrNEgzq0GDGDOYgruKL3NIpiTax8uP28HHBbuN5bl4A\r\nRyz66LNrXlW0QllC+O6WKoTwUhQNFObhiTDRRpb9WTAGkXJ5fxtih72w3GKR\r\ndzK6A2LJDXJG5Gp+DcguxhlFyCZIdJOU3xgTZ6CSxStexTjLR/jg17jlSLCI\r\nwCtP/jr3dpT0HJ4TXTaHZTiqPUd9DnLz7sWQAHy0Y3/NQHfvE96Kxtt25774\r\nIo/GpD7rLzE0/vWe430kSeMiKANe/u5SzXIWXowW0Gyc8JxFlR2Y/M4R9XvS\r\npCG8IfbvgOATCX0+moKbbj1muhdrjF3OvaF047d33lDDy1Jit7BVF3xP4uyd\r\nPM+7SygGLLwdq8KW84/XMJuvHFWO2jrXBm2gyzftF6RFp8YcTb5VvB52nMBo\r\nPOKWcMD3g8iBp/s//B9fnHFD0pvOPTEnNKR6UO22slqhBFzJwzGBb062D0wq\r\nm1dDj8Ui7rfaskMce/gUfXyF5jnNkO5wrcRI3KGAqu3LwGr9HkT+xY2aXpKH\r\ng379Lt8SAwhGwsGqEQc75W5e5mjPVf8kDwFexqWzECSb8fpNM+YFAlKfqBnv\r\nndlpZF+ZHUYUm+7SVBwAlYQDpgzgP47Pr5k=\r\n=O5i7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4ac4c54af0357154b12454d52da7d63e2c78eaf5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-4ac4c5-l6xhf5zj_1660732904544_0.07147728024789535","host":"s3://npm-registry-packages"}},"3.0.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6b4be99f63d7d6e290fc2058629e5951c1c91007","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.4.tgz","fileCount":1055,"integrity":"sha512-yjuRAMU2FjYRa0gjMtyPQfctRORWH5fKG+ML1Uf7MZytxLce1ubMX9ZnIQMjqd4/WDeL5We5/w0mVONYK+RVgA==","signatures":[{"sig":"MEUCIQCEmuy3VwE7JPRUmguRCVqnDzs1hpicgnNPDlxrgiya7gIgeXxO7+tDThIBgogdEGZFyK9hYhkPOiV4DtCDqReLKHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/M/+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUdw/8D8PMs5j0LGaLl82OxZrqZxBFUWTS+h9WzdsWBz2KRS99eiZJ\r\nOWfuys8N1Ez0xQXVeEnzYjJi0nnkUYEknhccL/gYq3RC06jfIezQ/WzkVNu0\r\n4mBh2WwmsS6IrxXYwSmqeJ7B5eKyh+A6HeQx8t9kdQc0ip6msVKbTB8bYlUy\r\nECsYlga3NF+rVhIWyvBNMZJ9MgwHxVL0p94YWhnruhsT0L0t/YxR7PL14tgu\r\nkGgkJAcYl0mwN/5hhCYbmAkBeN1EFkCbFR2RaeKAxSLnPodKBVZnEiuycnbE\r\n6U+cKrnrNh+Ss6jS/Ai3smKI2VXREB2YZzlwIFKmlYzCra0fmSVFQu6QFKMa\r\nwm7g3kYibC1QKrt0yGQU7Q6kyhsoDQBx2YqEoBVqA23COffe/WEe4aooKpmb\r\neOTfK7rsdheTZ0qjNkPjIR3Tf5NGZqQ2afInRmY+lcDMiGlQDmZ5ihoWvho2\r\n3NbiNlVTowznTON91H1fqhRri3rMedUFm/tDUJI5VmzPoXMQymDM2ABY1aKk\r\nrmIfG/iTFcOf7iosaghtUSSy3/PzHHnY/Hh6LSHn3twHchmDbVxHH8jzg3rq\r\n6XpTdGncC8w5JcXLXkmTbb9Ztss+HHptQRajescOFdXpr4lFXS4B9JH9vcTA\r\nPjPgZhRfwHXe42swXxrF9dsoQttgyZFtW7w=\r\n=xclR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fa9d10babc3ce133fd3255c149e2c2813cc3a5f3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.4_1660735485703_0.4279009892404846","host":"s3://npm-registry-packages"}},"3.0.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ec9575fb32685d1d2627e83564cbae45e1f0a5e9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-beta.3.tgz","fileCount":1055,"integrity":"sha512-FM/cxXgz17Q13TEdwDQVrlNJZ/t/mrw7cZ0vtWb3C2dHejjGlsZVLDje5J6Yv9a3/8GvnVbZlwsjwNUAqdOrBQ==","signatures":[{"sig":"MEYCIQCA+RhHq8dImKJGj6VqgvgvIxNIFisT5U7itKG5sDsCawIhAIDyW6XTtSxsfymZY1OffbosQrPxXtZamUHrRnNjWGhw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/ND2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoubhAAncyYSuCIlW1F7kbA97k3JfI8fu4ORiapcR1P/lYrVddZ1S/N\r\nIJUk7/mGj9pV+OhgvvMGgAu1ARWUSkc4pa8ZW0WihlbxJIxleCBQQ5/p83M/\r\nySIJDKv+ChRkv1SwWEm6Mq2ydC1BMMZkHR5YN1n5w8tND/AWBa0nwy+hKD4I\r\ngNepsL8oUmLuG5hl0uEs0nmAqE6iodDV1vRJshhQ77A6j40AQKx7yWpghlcl\r\nOMFgVbfXYt+4cUN4bC5g1g2zmCgOjLLzymvkCGo4o50Zn0ipNXsM4kn4awgx\r\n5kJg+mCGxSPfydgXtkqTiIqvYQRd4zfA6ftwkqeW7dC3GgNDR5bORhxWo2UZ\r\nP+/wN/FqHzndnYzzzZvy8efAG+TuHoJXqqO4phxl9tQOuQjsQ3Wu3cZRCI8w\r\na20PP9oVhxisKtuHb8Trh0vSYdCE3lPtnX7YQZvaglwnANfkVti5OAbiy32C\r\ndyC9hls4yULP7AnsVrm/3mzVTBgXAeabLMN2pvrfrsiiZXOqfgsvgCd0n7t2\r\ngdHwWvCD64MCw0gQPnZ7hHOTsaqZCgVfXPTSbQaKbIuznvXdsdVlhd2IqLEv\r\nwVPbolOKMpLcjlL1c26LphoBJdehVqJeO0jfJbiEjWu/UtvgrBM3mtF6YVkt\r\nioFGHSVL9qekAR6PtC1jU+IZ5lH1eau2GXY=\r\n=zOtK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"11d75d31ea2fa39e875d9042d81280749d03cf03","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-beta.3_1660735734311_0.876487018695187","host":"s3://npm-registry-packages"}},"3.0.0-feature-dee7a4-l6xq9b1j":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-dee7a4-l6xq9b1j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-dee7a4-l6xq9b1j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eb994e0c31fa7385eb31275bf6e0767c882e1922","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-dee7a4-l6xq9b1j.tgz","fileCount":1055,"integrity":"sha512-7gvj4zFRklqAMgFgDjU0b7flU+3DBZcBUK9j5XpFQa1FUUCqanB8g5u/VVi86dJQjTVuixXIC1CyMEWmnrahQg==","signatures":[{"sig":"MEYCIQCzOofMdPd41Ja99PPpPzMiPUl2B6NzK8w4NrANpgaDYAIhAOUc42hwWPDUUWBG98rOMw8qX9qySvEI4tGREjlcL0ir","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/P/8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoq1hAAjXZahC6Q/5kk1/xxx8O3c5vENadZuqT0Imv4qkYMACQYH84J\r\ntgM4CYwEfQU6bNnTOzyZyfUurzTeyyKxwqmZ6jn5z1vLveVF8rl0MGo+vl57\r\nWLEiBGZdh5Mmlq9xVypbWsNdNdx6HcTVh2iQ7VNHOk0x1wKKlYLEVPuQnz5E\r\n0I1zTLCqKaoLfTaLLk9OqJoVt1EI1WXytGbpTviYQMvfaMav/IWZUxpXQhOJ\r\ntqVH4jfa0Tu5/pACeyde1xsFRpF1sb/PHci6jGDsyIsi8ITg+EKu2/9OXxEh\r\nDVQkYeBzDiMtndXqKq9AWcV+HcjFUPvnK9JnKkB1Dv91SfCXruokCushORr9\r\nvIVMoxYPnX0qQuqVSW8URKxw0ukrjCyxNJwcWhzBdkQ+7PVmoOhRb4DK9SNi\r\n65RBPm96uk6jvgZdSdX88n3DPiDh7tva9VbQmggKoUt56XER4tVotnb8Nen9\r\nQU2JfapnxUtLlWtZYZkQ+dQpJW05fud1DANRlLsfH9MPJh1UCwgPD6fbYZQM\r\nmcU38UFeBi2vSIFy3wBlBVsAFPifaO4mp9vgLVTjPD8wVm3KI7Tzcx/3e0we\r\nJntCbuEn+Z0aIriCAh0ZkcutI2vTr3geh6nhBqgVtnpNmPEP1nxUjyNmWks4\r\nQ4xAhs1r94Qcee0zyTi9SnW3cY5kzLwkqNE=\r\n=Y1YU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dee7a4b65d53a724d80e38dc1e41e6c03b81ad82","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-dee7a4-l6xq9b1j_1660747772201_0.32527555419188925","host":"s3://npm-registry-packages"}},"3.0.0-feature-2d47f5-l6z42jud":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-2d47f5-l6z42jud","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-2d47f5-l6z42jud","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"efdb56d697a7eddd804264a4fc07cc9aeb2e94ab","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-2d47f5-l6z42jud.tgz","fileCount":1055,"integrity":"sha512-TgJlpq2GL3qnJcnLfEtVze30ZnAv04sXia7PQHqSKNpzYlXcsXCnDwHVuLkZ2FVEi8cu5RqALG1WTLGCgprGmA==","signatures":[{"sig":"MEQCIFQmhNXRlKEv16OkQLGmuXM6uE5OMHtfYDbk9dsxh/cMAiAHNF3ebcMLWbUWqdV4aoJrNRPvfByAECPK5oDLvM5UIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/ka7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqixBAAkkT3nxv21yDHLAGhTvI3wzM6qt5umYxhtiy5Oa48zYDRiDcn\r\nsjcivEczo87ypQgXZF7eH3698ZxoUUaLHFaJtEu1/x6qm7AXD4ILggAx1b/Y\r\ns+h+gIAuHWWkAaTlQjxgYv1DeFNpR6LTuxu9theiJnljrAfxI93S2EYqpZDh\r\ne7VFpP8FMe7QFoj6/3veW5jUs7LGn0i20+aL+5GupotZcThzrGWfW6AsSf0v\r\nPVW5RsFpWLMVt5+szgYFJrWaaH3Omsl461DQSH22fJd/CsjqHMWPhdNx8IO3\r\nraLt6KIyTJwHH214nC6uapr6z8Df8NZDaj5LJePlh3A7tQk0UoBgjeFXuKNQ\r\nSTRP2M1IIE05yghfnmAHHaBzHhDoCSPtABAI1n6I8GUyuJsst0lZ15UYkNHZ\r\ndZ165iFm8WhLSPV5GpNSfSpFvzIkyao7uR97okANFASMpxx/SntgB/XTFlQb\r\nrV0W6dEKSKGivUPZIr/50domakrp9b/lkZYtNoKFGzpABmoXsKLA+MbkAVm4\r\nd1PKFKdXX+1hO1XKjTTLK7DKIg1KYx3fMopqL0Lbs0a4A/9HvPJT4eAD66yI\r\nEHcMF2z2wcamcSZusWls99xRGwCFKsD8YqIQ0w64H33/RWf/r51QyEMYh6DE\r\nO/4cCgSps7y7sSfOmvcHVvZdo22fBSEDSlI=\r\n=nzyP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2d47f56a2d2dac0deb38e0a9e92263d0919e4e6f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-2d47f5-l6z42jud_1660831419692_0.5615013289863182","host":"s3://npm-registry-packages"}},"3.0.0-feature-c9446c-l6z4cg21":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-c9446c-l6z4cg21","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-c9446c-l6z4cg21","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"553414027f1430ff6e3a15633ba411d699cbb236","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-c9446c-l6z4cg21.tgz","fileCount":1055,"integrity":"sha512-UEOU11Yj9zjBrJ1YS3nAyJoEGdZfZ9o45WG4nqhc66A/mFU6D6c64Ask3yxT5qfWWEZEFKr/4N1JFTK72Ysf5g==","signatures":[{"sig":"MEUCIETTqh92r/BLoS5aqspubX3ulMi49jbrXPqHsUld9XkJAiEA0yjOlldlOBWIJ3nQXdazIxWvGGS3ASCiR6yL8CAH+Po=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/kiAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZkhAAjmY1NftJFNpDtoKhsJRrdl50m/GeFm02g5hcYum61sjEhhR3\r\nds+oABM4bhID1qCEL/BMVgoEtWGiJF2E5/6tqZjKrrapwovYL+6VA5gq1Pop\r\n2SPnmDeBYwbfLTqa02zdLyYJnOjt/G+acx6MALgK58IG7ndYeLUd28iMZg6/\r\nb2RiFwL9NT/damy74f0robwWDhhqVvZWK8vzXdV7IJGK3PeVg82bmnoQ0PKb\r\nFjeClLlSNetZ1GGafM5cZ4dJlcUoXgI5cLS2jROTfvEp6UA0DWc+cZ9qsm6g\r\nM8hgBwjXhKjSKKssHOYa/vsMatOahgUYL+FgVhQCg8+HXXWBElVnMwlx2ID2\r\n+J0yXXV6jhD91tLwc8rFHpAuZP4ai6LfGjgWQRKTYGZu86jw/XZpKYSUhPPu\r\nZsJGhLzet9E6E1xP4Jgh9LfypUsyHDirB0Hh1GjoLChWKbG5IG43r/4gzFBd\r\nWP3nrVrnuykurhfEQePMrcqvk4lqDKdenvTgb/xs1yKc0pXpJ9YxL2S29m8D\r\niNs0imCfOuSJurm2w38pkOjVku59Vp5m5clHNs8p3ZHxpSj+46TYKLi6QwwA\r\n1FSeqfI12yaGo+N/PF4qq5G5gN09STP3ZHuFL75Klrud2yyrYFPhs5dWYWiJ\r\nEkY9JrAOEtjKlcKqfALSub8m5R3lf88iwok=\r\n=dVmK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c9446c0bc3d05d8f4cc65fa96d7bb2d3bf38d7dc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-c9446c-l6z4cg21_1660831872273_0.7433211593536069","host":"s3://npm-registry-packages"}},"3.0.0-feature-9808c0-l6z4lsds":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-9808c0-l6z4lsds","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-9808c0-l6z4lsds","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"44fa45b0a1f2cdd86c47ba68c16096db45fb95b0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-9808c0-l6z4lsds.tgz","fileCount":1055,"integrity":"sha512-emBnu37Kq1rD769e7oXMc+f5PGg7UYo7iCCsV6/hOnwdGXxYEVyWLpr58YKKXnYTL1fcP7ndBTUqLuArWrXeYw==","signatures":[{"sig":"MEUCIGjOpJmoOISRCBM3oPgqGWvpnSCELtlx7CqYsJeGFew7AiEAt950WvItlpGRpL9v2kCBJbgqja/FgXJ4Krv/o3+drsk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/ko2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6lBAAnI9D41F5T9E7EeanpvVj7HPAmNI/n0Q9ZiPFowDLngXKQiiy\r\nicnoDgOxoD65R9GsKJ6a0XguBcmGgtDVYwE/BYLkFvGwQccxUQFoOv/9nzpq\r\nBojzZWLO6beIOPKpyS4ek8K0y5KiATnYCcn2AImCFV7a+ez7A4TQc0MQW+BY\r\nTfwvfyuuuSz7h3WIoMty4Il24LSDVkkhW6K7K60AeM3wvr+fVtf3M9WbkNgo\r\newvn9Vsw7grSP7HUNmuXqHZpmUrBwrtf7szP7hm33D7DQMzOrufwIzw8zA7T\r\n/3UiIj2f59aScP0cTKR5sGUPYrL6xfVSzd1yy7WsST3kPbL3LyqgofONox09\r\nx5Z0W6ZX+nyb6U2LpKe9UZB1pLJNdw86Y/kXzqfNwp8MuyeuCQ605KP++qWZ\r\nvGB51KUsLK1BBZoIPVu+wMO7IczYDWep2GTXn1mYV8Jm4PoAnlr2Sm9pa//S\r\nSRcp3zPPLnQZ44HS9u4xg6GNTEHq1P2BZLX6ebjZ1QXHsLBY+xW8vfe7eETv\r\nZ9j9HWrXGCO/4I596lOBlygO0F6YLbDNZf8Bir884JIQMo9IwwcrASlOHMHZ\r\n2E+ZQz4WgaWhqxyzJbxxV7eLBpqeS7ca0Oxq0+rlQvRuD83HFDR1aJkybHpj\r\nmtGM+f7fqZdQzy68xFtNBvfyhEHXe3YVMTw=\r\n=Iwzi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9808c0bb23bef54c1acefe8abfaccc30a49d9d66","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-9808c0-l6z4lsds_1660832309920_0.24980945929121057","host":"s3://npm-registry-packages"}},"3.0.0-feature-a8f076-l707opcv":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-a8f076-l707opcv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-a8f076-l707opcv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3c7fcdce8e4811762cd4b0fe85329900b575ca4d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-a8f076-l707opcv.tgz","fileCount":1055,"integrity":"sha512-BjPilYppQ6K4AhKPqWIZqLHq3eqLiGVYLbeKR8PCoIcLJA3nVyV++HYI051lYCCuRQd9hgt2uZPiqjLut/tUhA==","signatures":[{"sig":"MEQCIG4aAxgX7wPohAoeAj10ZUdeM8kI5Nwk4nTNNUdHnMWbAiBjJ6iEw2rWPZ3YRC74ZmUXmlTUsS/FvW8CcDvO7s9j8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1791701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/0qbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8OBAAhHZ6Twc/R/CxbjnP9h9zMSoVCeVekDKiXn8vnV4rtsoa7SLt\r\nGob1vlivK6zOujmVenvuHM0tRmQDaM7j7XY58Ioaalk/inTEQPc+1byYk3Jc\r\nRDDNgnpWo040giCe+asGlS4Idpe/UvBgdEJriEC/KygSRtJ0M4x6nifzf8NP\r\n3CBCPUt1EQAeIZZ1q2s3DZbkISYu9PME+VX+peuCKcFBMEG/5/7/rG0Oo6uH\r\n1qjdUa4YMlsGwqLD1zYWhsfxuTffpUfaZ0DgeGHFfATT8+hHaB2EJP9y3Qh/\r\n4651k/cJlbutkLD1pU2rTB8HprOEKIZyWrmomFakc1P/qxSCCNjqfyDiRquR\r\nUo/Qypc1tDpOd1/pH16RcmuL896ET6yRFHHKpED+Q9sRyAc64Yx4SrqKLRyZ\r\nXUszK4P5xFiEKtSu6QctVvLKkkxpzLdukNeA9RVxIcoGmBSQFH5/fe7USpRJ\r\ncrC6085ymBDod1Ab6+M8NNsLTXp9cU0c+0HfHzSiMZzyoQKqXAEzv/4TD1qB\r\noB6dN+GxmUYkwWTO/iS8BlrkMOxICkVRyBqR7RXq/sQeCFFpSk8E9zTPhjQa\r\n7tlQHwaTYYEmPoFA/8ZgOP1BoxYt3HL4XvNTY9iVfyLqdwZ/HVZNfAgpHDui\r\nZPYsDJKcsZAyakz9w8WeJUDdK89z/jiQV1A=\r\n=xWhR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a8f07657a6a23ffbcd3ed8ca3a67c354a3b97ac5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-a8f076-l707opcv_1660897947514_0.4441022138897355","host":"s3://npm-registry-packages"}},"3.0.0-feature-9f5e62-l70ez205":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-9f5e62-l70ez205","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-9f5e62-l70ez205","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7048c8eaa010945cb9e2bc4d91a03e80339378b5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-9f5e62-l70ez205.tgz","fileCount":1055,"integrity":"sha512-q4XFRb3vCq8ACKoK7COxVMnlqFsZToQMKN1guQ82/QdYPsC1HK5IkkexZz/M0HzXnQ2UtlbQ13n/cyusEpvWgA==","signatures":[{"sig":"MEYCIQDEUxqS0yWixOBH1DAy37KfibMLLePjRvgxu9NHkAVTJwIhANkJ3hFArMqtY9Fg1gpx9LabQTl6Te+fpkc4dXJG756y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1768035,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/3prACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyFw/6A9NIjTgsS+XDMTyjfMLZeY8YqPbN33FquIs0V5lYbq+QKOED\r\nNUrOQYERpm2542hHgDh5SugEFzCwzRZ9IaP+VQ7MnfVtldPdra1uPz3I56v+\r\nTbzanySUgADN49Vp0eK1AB4X0DGUTh+lII4ODrrIJSTOoeJgwqz6IupYvP1s\r\nJfhvEN+TPiXKUwxZPrfZs2wg0CQcnLVnKqSzmLj0wYTyGFbAeC30qTPluW11\r\n97mCPX0BGx6BlwvHYlneddmVbOzXoUJZTzEWgesu7PTLrZ9vDdXYcJkssVBv\r\nPu7CQcAOo5A+40Gn0KuDNUK7P276ge158y8EqBJHCCKPrOGrT7esJnVIc2FT\r\n7Z1/5tr2H59TUAXprxilk4VYt6SR0fo1Yu14JZHOJSYvzt1jP+v8kJ7CHBYS\r\nJCn/mufEoVDGVjwTyrDk7gen4u3ti8F4Yz0Iagf4hbiQkFdDq52/DdIMIuPS\r\n4RTQLRWN88/ZmnXdmBGvM91e4DdzOhMLRgwqvL/UQRLKcUlIw4Jwg8NRMVQh\r\nUjnarMyArUTapQc98lxT4rsgUJcpiqr/xM1nKjqPD5dGHfhlX3/qO0j4FtS5\r\noypwRDH1iTv6BY/9/8PEzYMz1xw05uKB6SXJCUGq9n0hTC1zm1qPmXqjZvO4\r\nPYg9eE28w/UF4gBZYSbm5btPs4EM4bZWoOg=\r\n=ZTLF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9f5e62b70ab172b03ea0d6045d8323c70253a40c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-9f5e62-l70ez205_1660910187106_0.2589122942520792","host":"s3://npm-registry-packages"}},"3.0.0-feature-1ebc18-l74t4ex3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-1ebc18-l74t4ex3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-1ebc18-l74t4ex3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a3d5e155bc72f0737a98fb509b82ab67be4e3dac","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-1ebc18-l74t4ex3.tgz","fileCount":1055,"integrity":"sha512-IZEMubNZ/ZdLs5zNxiTPSKTULABp1xrdnmfZmZVZ0SL7eomHLL3Z7Qyzb2uq4CG16cHUH5FvCLDjBuKxD3d/0A==","signatures":[{"sig":"MEUCIHiPUER6+IidGtNRW6WvsTxyBabbEMtIx1my0sPHiJGxAiEAxDBdfxE5kWuAd4MmECRbIGwNDJI0s/RgpRzbY3CVxnc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1768068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA4glACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrz8g//asCteT/eAgorJvtKUL+FmF7srbHSeKPoRxRCsgcm7aS3M/gi\r\nXKzSK/hi6U32irk/Dh96DIJLgFAv8OUbKfhQx4bukolP3SvgHvMTdC/ctmnH\r\nCSRtQzkUZTxAYcuJY0kct1dZ6oXv4H9WcMBBV4whuAlaNmkhqLiO7MllcTvn\r\nDyMern/ht195JqluX2aiSGySS4b0Poj3pWJ+4mDJeiYXu8ZJtUl5TxfpALLJ\r\nf3U0B9BWJQ1Zceh40e6j+qToYrIS7hIdZj7D8kiEHxAUbOydkveGqArCO8ci\r\naVcLVz2inAjZcuRKe7IVJoOuZxSVAI2cX1IoDzvPnu805cBG+B2+W6K5hiFb\r\n0KPvInBG5TgvJ2kl6kTlZBR3KFR7avn/BCSFH27SDNsd4kJg7nygsnnrmB3w\r\nXVa2+S0sis1lTC3bkhisaO0g9KHStkhYVg4/CgDVYZukE1jQaddmro/RDcDJ\r\nXCkR+2ILD0bbcn0AlrIPGNfPzVD7tB9zqTk4RDseyDa4L+ETDlEmohMlT6t3\r\nHIo1oY/rhqBXWa1r3+md3nccANOGdJ3NfMpzVq/CXM21jcZ4KJrn6HrpSyJX\r\nvgepDxU4P9G1Mcnqttc5EKTZp6Hy+jybO2pBtvwnxgjZzA7PssDSDrsiDVXd\r\nEbHx3tFndehIbHm3JdPcSS1RJCovloORogQ=\r\n=TUaB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1ebc182b09ae610b3ddac3265dbcc4029d8a4ea6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-1ebc18-l74t4ex3_1661175845736_0.005450926691397573","host":"s3://npm-registry-packages"}},"3.0.0-feature-c9446c-l75spcp3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-c9446c-l75spcp3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-c9446c-l75spcp3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1cffb1a9175d16d7ab63896e7dfec1ba5589fc20","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-c9446c-l75spcp3.tgz","fileCount":1055,"integrity":"sha512-46poqx1/NNk3skPUnFIvHD5GbXtRvvkM2fdAgJ9wQK4LafvmlUVQkx0jp0yXXBQo0Qpc9I3g35BZ0Y9qgVVXdg==","signatures":[{"sig":"MEYCIQCITQPKlB+v9rz6LxjqF38BWPVJt1yk7OU9gZV7JK452QIhAIbqWEjzwONSQjYDaee4VuFxHvlYZ09imxagT/xk/Z9F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBHF8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoc5g/9FcUirvNlSeSa09PMYtPVyePtFBEgi0324eHsOYw4KS4f1Qz9\r\n3hT4+T56caFy7BQqsglY/52ET2LcWcDoLswQDJT2yZ7YiqtlELOZgYfweOu4\r\nZS7/hp4NpMAKioCo21taP7VB62mAXCHs08Tj0YnM5Zpo9xEr5KeIqbfdKZ5S\r\nU9fC72LG4iIemqMxMQiyJgVbMfvzWjlYPsX0czu6m50IaFxCMhCw8Ppcdfli\r\nEnOkGr0c317ezTFu6whmbbBTThzQQ7u/ncRABZvzn/cX095bd7StwxI4hzch\r\naTM4sy/rqLq80WLkAIT4PcQQF13ZrlfMHRyEduUkxJuexx0DRdVnKCXJjlzr\r\n11Yvljz2vcpsdnLUXTEtcx/mja1GncsHZMP4pz1UHVKZQNZGBpZb0blcuzxK\r\nGn1znnWXN2+lSnDl/zGo/yq15bFlp8h2b+zn4Ps9qn3PfYl4VvYi55MxnovJ\r\nyxC59TJSkup5WgEDNDnCWqehE5sWm4jNvIctPgDlrKW9nrFCQPKgBCweNJn6\r\n4u8Jet5UCwq/RDqp710gNfzgROg/Gw97Jx99vyZF+q3e2NZw89u+anXlPZxY\r\nZs4n1kojSnaguWeQ7dmv0QKf3k7obeoEx7UtmPoAYLJl/bcTvHMjZqmgkLFq\r\nmGZDwKUOWVdz2lH0DwoyRzA11yF74QXB4uU=\r\n=iJ6j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c9446c0bc3d05d8f4cc65fa96d7bb2d3bf38d7dc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-c9446c-l75spcp3_1661235579911_0.9028350048243949","host":"s3://npm-registry-packages"}},"3.0.0-feature-c9446c-l75swa99":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-c9446c-l75swa99","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-c9446c-l75swa99","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e5d6288930e1fee01f390934fcbb7664e9a49cef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-c9446c-l75swa99.tgz","fileCount":1055,"integrity":"sha512-j7BPk5wgd22r6TTL5U4YBOqPamIwTt5B0TyxAWjkZ+nzvRu7z77XKmGxXN8vkJgeqqiBVFk+wf8yerIUgcYkVw==","signatures":[{"sig":"MEUCIAIlj+/8xk/YWEml8LYbQnuSNENgl5CBVkiyRw9mheOmAiEAicc1RRj4nJXnlLJJNHBCh4zrZ2G/bxHlAeVjT0bmaaI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBHLhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoImA/5AfPrYo/VcssyfoHaYOIEp4IVmmekT0pBRXzEQ2e6ucYkBcL8\r\naY0WWwWeBNU5nk+lxnUdK7XVUBOh+pt9iy3m82zxZ5P4rpMQXIDQxiY+0xDl\r\naiIY1Ue5UmU33ARpOCFY8xb3OhIJGt4gKNj9Tl0S9aRpp+gf+Pl0VOgw/qN2\r\nJZXRG4Atu5oR6SnGIVl83owBVPlSNZUyNT9e/+wFkP6k22fi841dK8BVYGl4\r\nSwtxoVoqZar+0tayxxjOasB6rOtzzgt3jefLwflkCIS5ttcahRBUqyQ+5j0d\r\np4F5xwuiIMaEj81s/j8qEoIpqefLDrayS5LxyxFxQPTOzP01H+7JOI9wLYsO\r\nOjoIlv62RtwDEBCDXouh5izG9QTqFKUVcINPcl6Gv2BOlYaLOP7MGG9C/vbE\r\nzsFjAImyBiDBVe2+EWcV7I8c/BeYYNrSwI0h7Q7T+luCB1EV+oTWlhPm3jbF\r\nGNxaw0A2PpnjIgflZlRf7NCqosnZbRFNPZ+EGrkWBp9grJL+1gxsD8VhpVlU\r\nF+dv6VecZ9VfxL0cCrRKq5/cDr5KTP9w9H5RBYcCInGW1Okvq01aU+od1qVz\r\nX76zvgkLtmWfeVk5vbV6u075Kv1UjL+H5SeK2RUPK+Bi+ROhmmbw1bvblr5f\r\nkAA05x+w9uQeUTenNo4RoM8hPYlVepUqIW0=\r\n=yePb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c9446c0bc3d05d8f4cc65fa96d7bb2d3bf38d7dc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-c9446c-l75swa99_1661235936820_0.494895601053998","host":"s3://npm-registry-packages"}},"3.0.0-feature-096326-l77cl873":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-096326-l77cl873","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-096326-l77cl873","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"52f24bd53998f65c1bf3200cb03915f0d124aaeb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-096326-l77cl873.tgz","fileCount":1060,"integrity":"sha512-XxxbWJ5VNGPbm4yrd0bVRO2BeISqlYk1d1bkBqwMCMwivwIxZ/fisVX4BYfVsi9yqWcf/F4j6OEjLwJcHSII6A==","signatures":[{"sig":"MEYCIQDf1n5kf8m3x+vTPN4dwa6UBr8P8/W1rRLQUra0rqLxdwIhAN456/tmT9qzvhzbHAkvYKGXj5zf3DmOW6V5kL5EqZQX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBeAlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2dg/8CeL5RPFhCoxQ5LcapkZ0c9j6pHJM8Q91+46IHP4t3tOvRqQj\r\n4YoZJ5VY12Bs/Qui3DJYJVy0Om+/rJN8tIDz0k6UWwnawetcZhigjGJ4kKXF\r\nIAnJa5Z/iHThFER5SlVGSQeW+TRM1kKkcbtuAApcL72dwXzCtvlty8Xdu2ux\r\nZvLVCbTO4tRpwEqJRCe2lbEoKcCPn0TPgmOCoTXlpnj7VcmzyZKk0/5EHk//\r\nfsEQmc6xZLPWPC5MCU6Wdna+vcQLDOj45ZbXHl/gROn1G1mb/WU6I1c5RzyG\r\njdIUXQsFR8j4UeaF86qOgWDbOH1TBQaLvj6KcKaKPj/OA0PUPB99owgj/1Ld\r\nwAN1uZknKrGJZPGjeBwmmqTPjelHQXdMzBt5gcz8hHRLllZb9Bb2tw4e/UAO\r\nudJDBOSG4GgqxOJ+2CBcVkZxOwjwK8K/C2niycmi+M0gPbNC8lffYQfYhdSY\r\nXG0J0CJe2gwcfQgvOckry9pg9MJTn/QK5e5/Duao97yixhTikDCmfU2R+dlL\r\nA+KGG7d2z0VaHHGT6GTOXRxm3Ny8NV4YNbbqOiWZT7EVHU0V8k/FBD8EALtH\r\nQVa1ViYRe1DwchMm2O3N3pTAEj95OhuoIpHG/Ntz6nSRexX7VRxkpS7jKetU\r\nnaX90XDApkM1iYtiFCjQG3v+VC25c7VMTQM=\r\n=bTFW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0963267f269c2bf59b5d76e03e0f7f5aca65b11a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-096326-l77cl873_1661329444956_0.9496824831513644","host":"s3://npm-registry-packages"}},"3.0.0-feature-0e85bf-l77ie593":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-0e85bf-l77ie593","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-0e85bf-l77ie593","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"697d266a6939d5b3dccb7d5e6ce2d9625bc1831f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-0e85bf-l77ie593.tgz","fileCount":1060,"integrity":"sha512-wneMED+ROhdV0duMgLj0fY+BOh+fDUALl14jEiM/Booht8pdXy+u+T2Mqmak8MLJVXOWQHjsIUaipi/kNw76Fg==","signatures":[{"sig":"MEYCIQCBZb3VHJBTOvNlaQlG5rING+P/eweQ+QGCJke69kD8nQIhAMPYIrk11LQdczUGL61CgC6UJwq6JO0yb2jeDIwjFZsT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBgY6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTag//clzNVYv3jUKZhsSw594kmeowIG5aaPBlBxUPxdU6WjB3iqM5\r\nvdLMt4p8sukcVeh0pY+iGD+mzvNpt/eFD/xw69a+guaLZZeN8EQP07rE2h1a\r\nufKKXSe007CevhuyuinBMzHC+Fth7/i5rDvKSe4e+Okspxb4XPaqX3niot2f\r\nAo8vBCB/AEaW3YKhqBxaAmV/ncVT884rX24xDWuhVWlgcm94PWjQ69S9eDMA\r\n0aaiK2xBlX63oTzYo67nhmuKCA2+TqW4GowHOjuPbdIDTsZsxsrhZKMzBLx8\r\noMaU8Y1cMlKEwRrIut9EKtuD4Ucz1bVjWnJuyA7VxT1e0AExvDeGItl2Y3X/\r\ngdd2gSz3rB281SVJaBeFId1q/1HFey47tnSf3uAF+S8c0rPJkXgfSc6LmcoH\r\np5Baxh4eAT8AZG3tQJ5n5bVeeYIGfpRVGGtvxweWDOeH+ilijhxw6ojZI1aa\r\n3kmivjdIgfpFJpkwZChQsOwcYwoZeF2yg5CPUrgMwYYkpfFqBewyCuOokOhe\r\nyiYaoPFNMPn6tenWEnX7RZkkFW9AAAQBpS1Cw4mEztwlOTCH+AOvQ1ccPS0j\r\nG/FAKFqsS8hTX0zzclFxpIkMd7bASMWc4B1ItWIofZYLELTZADOTIh4u/cpy\r\nBB3jdIdDfP0aSG/aS4t+uqV+PhxL3En8mN8=\r\n=KTJE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0e85bfc9d744a3d877c1d3b0295b4323fd1fa77f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-0e85bf-l77ie593_1661339194237_0.2431112408214573","host":"s3://npm-registry-packages"}},"3.0.0-feature-8904d8-l77igjoq":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-8904d8-l77igjoq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-8904d8-l77igjoq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"07c5b8f8d6c11a7ea15429bdd2f49739ec25605d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-8904d8-l77igjoq.tgz","fileCount":1060,"integrity":"sha512-Bpty/N3U/Sag3cx95CbSk+4h8MTbESNFt2umg4jAGwBEZ8HP2xpdf1YUoEPGn5kTLDExsydf50ywJyL6q3ouWw==","signatures":[{"sig":"MEUCIAlYi5ns/G89+NeQDx6iT1BKcESP0dN8LS1SN4hLFVFBAiEAxcBqzJpZnRSwiRG44icYIn32eN9Pwpsdj0Ct2OAx/3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBgaqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTpRAAinh3a4cpZGo1kdn8yqWiMI4XL4elCr3WNPl6ZA0wiRaDSvtv\r\nbKGTv7omQ8D/35Jwel5uxYxV2LbvLJipOQh703RCE7bYPD6iIu5rg9lCafwm\r\nfB6tt/oIdQLR3DxNpiinP9I15uFFEjz3KmyQsh892BpAiX9hlYvm/+d9GpoY\r\nrsNJuNguRE+7wIASFdKvp3ZckLraIdBb4c16fFdY7o4mj0yUjx7mQnrzDeyF\r\nxTUiUaSiTGdzZGTwgvyhY1/9CBFHYNSewxwKDJiM9u3AGvIzG/v7ShdYeJeo\r\nhvuo8nLPD4WsPMdDn7SV1yilJu5+FEoKAtpe4vYcwaO4IfJ4btI01qGcOJGp\r\neVTmkLsYn76zE7YcecPvZfbLeSljmF8tOCzXnuMalL5Lb5sn246cwCIAO3bE\r\neFH8fJGXJkMFz3f744/2n8MuP9T+HnJT0bHB17hpuNGkD/KiNfY6Ye+Ii+mV\r\nJ36A0BNzUiKG8VArvX6W5Bp0C7EWEaLTvdb/cVfDDQwm9r31Fy7YTu1XMHjX\r\nWWFnHon/ZP+z8iFsoIcIKzb/sieqsSlf2BjwgHyDqsVDtmmxMBQZd81kJkEl\r\nPJGLrkHemNLmQ0eXhIRy1boc0mzHiiIB6H0SJ/MOtQXwQXWrMBYTnkqAfsOi\r\nFxcNk4gd+LDDIj7g3w/RPUYPvZMiOD/5z2M=\r\n=tbQH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8904d8e9d65ec012a963c52df6a13c8ecdcab52f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-8904d8-l77igjoq_1661339306475_0.51648810958663","host":"s3://npm-registry-packages"}},"3.0.0-feature-e0f3a6-l77lqmsz":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-e0f3a6-l77lqmsz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-e0f3a6-l77lqmsz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7ed615bb1d68bcc61cb67fb854658413d029a79b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-e0f3a6-l77lqmsz.tgz","fileCount":1060,"integrity":"sha512-5Xul0DrNnjL7X6RFqnY1ozc0l6YNK2wacjVer1O5R+FDnzBbku3w94VxoIhPGMSoUwxSpZ7zW0k+zfWziKAgTA==","signatures":[{"sig":"MEUCIE4YC/FP22RN46xyv/fQz9M9qE7QhRqozaoeErE4Vh8HAiEA5mRFOB4kBIcosEVm2dOxukSTo0U7q/DWGk2o6b8cEso=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBhxZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYZw//Venw9Tfffuhi9fbaEnDobTN2H/KbDdoHmOacUPnrOfwqCkIo\r\nDDZMSAeiZkmE5eYKGfBVg7Zu9Ec9nU92SBGeuluIzeQeGr+LbCRQuYGGM356\r\nipcy+x0+3+orrF/GvocBuDTZEzZpkHqLp+rZv/07hX674WWA2/SWwi9DehEB\r\nwMNURJlAxzHBG7a4n17tX3fmvqDUiU1nHfN1YcRiFQnPAzg1GzD5upQm6tiC\r\n6oiWuDZWnyBe0umBdhi9B+o+jOWGukuMRhlexLjJz8Pn3m65AtMio69m+cxK\r\nyjLm9nlOKdNo5LsklvbCzTf4xFpIMdrgT6slSCcMhnu5rSqk0sD/zMi/xkPO\r\nsAClQ3sxamxtpE9lwokry6LmfBizqwZTLMqxiTsNRA6XhY6A34qeaHpRBQB5\r\nIlbG9KikoUOHJqeXti2Xn6VeNR/0winkb+tf9AenZYGOf9gy3CMHhZ6a/3f0\r\nH2qUY0OkO5PWnukkbBhRFWrxS5S1gRWwnZsYRNTt8itFh3wXH9Izoh8PYVna\r\nIJQb+nLzH/nuH7qMxgBOrBvmpzMTidrHsQJAm+qL/GbTKzaPMNnqx9YaG695\r\ng5ySIBWDizenqvpQdeeZHeQVsPcHH5sUGm5SOCZ6QPD//2ta7LSsQNpgIGBw\r\nKIA4QAXU3g0puCcqGlr4QGrJEAX5TqniIpY=\r\n=RV54\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e0f3a66ebc8c50cd51c8be928ab6184531517f72","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-e0f3a6-l77lqmsz_1661344857516_0.2919042910455607","host":"s3://npm-registry-packages"}},"3.0.0-feature-709d38-l77mtyyn":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-709d38-l77mtyyn","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-709d38-l77mtyyn","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5f1e92a33691fb100fd97311b588219bc3dcd1c2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-709d38-l77mtyyn.tgz","fileCount":1060,"integrity":"sha512-49Y/Y0J3Q27r59gKa6+bFTIp5PtzH1iim1/zGGFgEMKwyw9IRSdh8DiS/WMfdKZ7ncr6BLp4PjUR2eUGy/kH/w==","signatures":[{"sig":"MEYCIQCpuMmWH375mG/kNXIiQhRwojb2EN07BHR47NV1k9THQgIhAOlYnFInuKDvFyBa4L59uCpbcnwUzz49vBkwQcd4pjOs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBiNdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmphfg//V3ZMLkdYHZ2s4C+XrcA9d4OYh5u9Lz4AJxayrnOnKefqHFYl\r\n65HnowtZRsj0x38t67E2PSkljuFo9JmKAcBEUlVppybsAK/FUPAdrpHQY3jn\r\nFohmNWdWpokfwcaSTlntUAX/RIcIAyyV+MmNq/Io5aCPy9iz5SveSO21/l76\r\nMmhJDLvfNbL+KfekRU1rgXIEf2FWBCQE31Qwc6UHYZX+995B0YIvnFwlVg6G\r\nON6dT65gVdKu0HDJ2u6SbD2Va7K1gSDOoMSBnIOma+2AL16DNSpufZDv9go1\r\nv/aTQsW9t/vojYMLQesWdUqcV4hjgP8/DoC3qDVHDev3u+zO7MCkd9Pc93Uc\r\nUDslM6QpUHd1bH1ieuWOD39Y8iH0cVWhRjWStGRuWKpTBKawyHlxJEA8Hwjn\r\nm1kJmoGMoIeD9Qwa3S8wvE0jY2TFhMxnNiWaXT1Z5MO6Dmr7bXnOCuMjTRgY\r\nTTH+uq1G5SbQ3PL1t7kgT08shctH0gCQeMwr6XVQeb28I36s2xcPbY8yXScB\r\nEHpMC5UCrF7yVHNgOVYHVCNfYexNGC09qNXmqSlM3EJl0MyMRZJBj7t+IMv4\r\nfqDuagaJWBijpagub9YOjnmoF3rqKGB8FkIAuv7FkuN4BfpkMTxWmkOgOBgj\r\nKZ4z2KCKXPFe07ubZacQOTmj/OYI3Jhvc80=\r\n=CcOH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"709d38117324dfa283e90a9ffcf3f5c966e898f2","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-709d38-l77mtyyn_1661346652800_0.2774908738860242","host":"s3://npm-registry-packages"}},"3.0.0-feature-cc275b-l77qgnyh":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-cc275b-l77qgnyh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-cc275b-l77qgnyh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e4d16e89f3ac56e88ef4df17d89de81c33748fb6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-cc275b-l77qgnyh.tgz","fileCount":1060,"integrity":"sha512-hBXOfd5GQK6G++IX4nkSk9175x3T8mISh/cOWPop+WlNFjLE3MKE9jur0vKTq7BlavbBlzGNXccO+ZSjEcikZA==","signatures":[{"sig":"MEUCIF4jdnD2YEE1NvLf1wU0Pe15GDB7WP6bHOLwrR5xp28JAiEAlTBCLVAToJtDdiAIv9u89CoWOq578aWo/vi71E8LA5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769487,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBjstACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUtxAAhxcR30PVj/Y8ZefoBByVnu6thR8b6hOa/2yOMzJHo3TM+tyP\r\nn/Gk3q6hi5VwiF8pJVWTH9T0PXxcSCJ2Z3QZUkWMJEfVg8PnpVoOToqmBrqU\r\n5w6sRrfDZnhwyjFJM3WnluCusx8hQBz33vPn24c6FUQv8sn1E5VLgbTyGVCn\r\nG2eB8SdByGI79iXAxh5H80LFCJlf6OOXZ7NvUIF5962cNNuOYx/19aKi9mOT\r\na4vdSCDS4VJn1XdR5Pe8qb2SrlRRWJFTtTdRV342J1IS3eaNOWCEOvmeSUUt\r\nAdtDnXOVxOwPRVzmw8HgB7ufuWNoqc6n7i/cpW8o+uJMespavncI7c12UPnt\r\nwbZStbf6Q3i7fmwH4QX5rkmPfV7xBrwM7SQMwfatuUSiFEOYxBGLMLEbnUp6\r\njuphMhYQSko8+t0qaTl+O9yLUnht7QxAXw+2+V6jZgXImtopDjFDqXWzCaSN\r\nq1Cpkf5Lc+Uso31t14Q/NszViPQxI5kkJZaMupCsyUG0uDpJJcgYmcjBA0XC\r\nEy0JWxlM3wgao84Gvk902qWTGErMWfMi5BHty+gAx6vbcI0yfqA5W9yl/7/O\r\nvJ07pV6Lxt1kXM0kOUAeW3Xb2taDYgHaS89Fxiq0Y/JIHcDvwbdV74eLxsOO\r\nzNnEf1Ai3Xoa2Px186jyvyFpNhaZnK/tOnk=\r\n=ScGh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cc275bffb0b7d1278e8d100c1e34561fdab847ea","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-cc275b-l77qgnyh_1661352748978_0.944869307267789","host":"s3://npm-registry-packages"}},"3.0.0-feature-23fc68-l78plgvk":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-23fc68-l78plgvk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-23fc68-l78plgvk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5e6551d863ed771f6682aa0382eb731220d7bcc0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-23fc68-l78plgvk.tgz","fileCount":1060,"integrity":"sha512-CSEF/1o2Li43Lb0fXCLYLYJr7qUzwgkmGc4UBKitN8tUZsOkJzjAjJ4EylCM5xDNW1Yu5UzWXNAwL+zy6JGT1g==","signatures":[{"sig":"MEUCIFbTWYqjdRVA2WcmQsoOs5poWxVAvfdcGk0KXW+aABI0AiEAw+aOBkOR8Eay4ANoZOIj3E1BYpjJqYPQ7cNqKZOYPI8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjByGvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrK3w/9G7nq2AqORUwrGyt+ycPeiZ9k60f407qheuxcIzNA5kOGymop\r\njLlKMSiQCJss1JOzk4OUXibJurNusmGHfUoxVpisGBvHKEO7T6h8x6cXCVy6\r\nGUum9lZe4x7F56AttP8ZtIyJ6DSiIkg+hAQU47GDCiqILk+2aQLVqpb26bt/\r\ni1kBpogGpkVGVwlNLrAb7ahi0Pgq1HLMjRzT3Ip9NBQxXwnLmeKqUGZgAM8K\r\ndfkf7XIKNskzrJGUgtonOcdy+kXqLEYydisjOioqWOM4VldXk4JBq7yaivBi\r\nmg9fKPBDFKAHedu4+pWuxbCh6ZjUmOXZ6Eh1ImGLy/46E4077kVvQQSb4Kjc\r\nBeGb8o7DuFMs+aQrA0XDuxzZxY74BmouA2fDYl/l8l+zAa5WGPFq4DbR4Kt1\r\nrPwgLWCFbReC4jaQIqT8vW7n2ShNQFBZW3trCEJSUs6UekD9kyfMPHC6CxZj\r\nIOROkJLdVMgLW1vwoQeVS2gX4/yolgLfM4dlIvi0YIgdryEomHWttPeqD1Hl\r\nNtyqtQT5quw/hldJLbA39DZH1TsZwfDYbdTR/6lO9/HCoquBpzqT3LHDlXRH\r\nHtDwBzt7AH6aV5rtO4yv/tLC8kcX3BShUzQGU3JYUjN6EWuD+l5WYrOpe7dy\r\nQMnR8Ezl075HFyA+LRvtm6E8TmoMciHGxe0=\r\n=0pjc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"23fc684ddfb61291be9611a0e0de6f93aec6facc","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-23fc68-l78plgvk_1661411759711_0.6292355348853715","host":"s3://npm-registry-packages"}},"3.0.0-feature-eb059c-l7fuamwi":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-eb059c-l7fuamwi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-eb059c-l7fuamwi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8e527313b7cca90a93b0c6e172d5488fb02463bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-eb059c-l7fuamwi.tgz","fileCount":1055,"integrity":"sha512-zJ/Ai5aTP4sEEEgyFkeuPvo9Ht+/9zxSAte4b6xewk1JGK3l2/Zg53mtaLyyX9UT5sn6Bo8aLoqRtDp9SrtsEg==","signatures":[{"sig":"MEUCIE/LR8DOoN4bPEFm1aZWc2Mq2b7f6nqN8uEWAJoZLvxgAiEApAuG9FXViv35evkwN/EA1O69KkjPZDzJwoGgxEjEU5E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1787669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDbYSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpr4RAAkOv25KEZcR99DH6n//KP6buvVkAAG11sjvwSCDN5IwFY10MX\r\nXSLsrkDTMnbxImfka4gPG/lqOpA+oFCVvRx4mi6hHc80cT/6o94/ziTgNNw+\r\nCpJWRxtIcTn0u/BdHg/BCsKUfQ76oHhOlNNB0f3mAjKgTTjnXYIKi7lU+yZj\r\niR6/JCbO1AIjzcXxnzPvQPOmlfj+uiq6ArY3akTg1b1FS2H7Sog7KguvZkHy\r\n5QqXWElvxg+DJ74AnXwJE3CxNuJbpwrePX7sLDLOMpXu8jfvlB6MhTrYMSze\r\nhq3vbSn57QsPD+CNYOIhl3xD4SNLf7SCEQ8g9pgsmcvVQwCx4j7gyUiA3sH/\r\neUVqhsRpj30Ykz4x9dK7n4yxzDY2uJYRIG05SSbD6MZFJoEYNhQYUA5H/xMc\r\nRjoQJ30tWyRAew1pIfkox6zCmnz4cS7xUYarqx2YkiJSGfCT8buYXLdyZ2G5\r\n4sjADPiNPQhcbS01G6J7FIRrMOaTOZ+iquCai4WdJUrVDIjISrcThwkaqtMa\r\nlz0f+bOkkkqaI/9bZPqQhEDfhJHAun0I/CGeLGPxiH+wKRjL8Je2rcasnw37\r\ngPQKFPJWIE6NzURldzjXDexwDdLJJOpTi6vPP7oSfASZmvhayrqLKnHDuyYQ\r\n4IJL3ozqSS5eRb9z7OvLS9Btd2VGcs2VWic=\r\n=vFiA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eb059c39c021e2d906f079f9593b89398afdafab","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.11.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-eb059c-l7fuamwi_1661842962296_0.8029901127757624","host":"s3://npm-registry-packages"}},"3.0.0-feature-f893f4-l7fvcmd0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f893f4-l7fvcmd0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f893f4-l7fvcmd0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"901ece08ba8375fa0513022d761786e18c47483b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f893f4-l7fvcmd0.tgz","fileCount":1055,"integrity":"sha512-i51QG5Z+4U8bMFv9AQ+ivko75PWKmu0mffsLGlcX1Cx/bqskel7+yVaSsaUEX/NnmX6YyV3iW4mI1yeGu+19XA==","signatures":[{"sig":"MEUCICepUXQEQn4Y8GmQZgixe2+o4mopRnmPAAyQlfx1+ZlTAiEA/Hffa9ip4OkQK6D4fnGdD3qPE4C47UgfSw92o0M8Am4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1787822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDbzLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQug//fz7ZrwqyLLFpnu6Gf+EFuwslK7wcw+1ztwEGiLD6/d2qrn2u\r\nEb5GWNgLs8IQVl14+wmHAFNjlcHFOmcNrg8ggGWEaN35eUdNi1miWIPoV4/9\r\nzG83vw6NXCgI75vd4szSav6n9hX4t7yzXVjyi+4ia+5+l10z9csDo2t0UQYk\r\nCIocjYVdxPX4DQ6QyW+u4FR2PkCnKxSvLnvXxuW5Xd2ke6hc9sYxWTpK8zk6\r\nFPfViZRl918j8E7uDws/WJVtH/F4hPOrGIWhROiuyoFDxfe/3bQ/KE3Qfh4s\r\nhMZeOFHzsZwC9ji7k+V2FzBW1Z2yJV53CNgAJsNNT6JFZKtQJLGy/wdcyXDq\r\n/gw71D01Wea+MglZ3rtBsndQs/CyKZxI4CtNO/cj/jwhMvKHG4rntdOarpnc\r\nG6FmUAe5TMlup2PIhxjjm6Zk3nnqm6yUBYL2IbAiD532W8EWzUH8vGSfEWfy\r\nThuwdKRi4Yl6NPnZfPwvvcRDTNt/GDB64eyMD48QqJZHiJRCUPk0Ex3a4028\r\nsBFi/HLOGjOyQmn4Xmmvau8xxxuKxYFdy1mOmCf0LNjin1E5jX42pXEsl4ff\r\nsqkEWwARDJJDSaCzdTdWxw4ui4gavrrSIpXElxcw+2r9n548ucIE0x/Vq3tU\r\nh0jWf/qnx39SlpsUZfk/oqKElgSsMXYd/GI=\r\n=F8ds\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f893f4830b258b54493900ebe589bc143e2f51e0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f893f4-l7fvcmd0_1661844683494_0.21916004283295742","host":"s3://npm-registry-packages"}},"3.0.0-feature-f893f4-l7fw1wnk":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f893f4-l7fw1wnk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f893f4-l7fw1wnk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"76760615a98fb1cd8e5a25e2ec00619c2eaea5a5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f893f4-l7fw1wnk.tgz","fileCount":1055,"integrity":"sha512-glcrVGJ055LAHYDc01mCILSuSkfyOwPwbbdstlaqCWCh8hZ0g6pc1u7QQObDltniOkb+I5iE1z+bmNlvrSQT2g==","signatures":[{"sig":"MEQCICEHLPheQGnQnouDqGdtxrk4GfqTo3FvWN46qP7llh4SAiBKlxMc5mhwLomQMmBo2b7pN3H7T7Aptsp76E9MEoDzUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1787822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDcFvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJMg//aerqygvI65pndYDl6yIB9+LBn19es1XvyAgUlRY5Vo2yN2/W\r\nTAfHOXlqdHj9afMFH780qf7Jx8XXVaC83Wj/xWMiJ33rzqd5MS8yPwNZExtN\r\n/A5XtMYd2CsL+UFBzfU0lBT4KnqnR3wvVLEo4bWBNTOwcz2zSQdvwtV6kONu\r\nibaGdKR10ymuulPML+cPgqQ1/MGT/CuF+D6xlswCxySdMQm6i1d6/PzTvm0I\r\nZEc9nHFgPvrAVGv8xrsKk149S5BIeCOruWEYBILWU70CGnHcvpipEiBwOGbl\r\nk33YFlUXtDpWL2xpRwVIlHgfLBUYFB07cXat+rTbAAZzKGMqFPoB4qVVSQ2S\r\nGhFE3vyZhVNjg9HlP9waJFbsuhsANU3EXaDe8vf7pHdtuF0VzxdwAxImQV/t\r\nK5NY4SflHewfNnG6/mhOyoutp9XmWKrOmjPZ3pE9BKWd4Jj4N4HGdnr1aL5k\r\nS+OkcpMxlq4/nx736qhIDBe+Y7DMlF2GDbEkmViOkXoO76/ev6fnKfi+QHlX\r\nEnRK4wBOuZ6AqGclaYt9oXEX1APHqUfGeMwAXK0xBwBQk3tZxEts8iePcZe2\r\n2rXnU/vhiQKR6k8oHk0EV8xDlCnQSyB5eZoduMfS/2p/SV0k3QdcEL9/icdp\r\nd5JVuEA8Z3Y/7NofbpqFug5uSnk5DVieFIk=\r\n=mnxA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f893f4830b258b54493900ebe589bc143e2f51e0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f893f4-l7fw1wnk_1661845871621_0.7319938886379178","host":"s3://npm-registry-packages"}},"3.0.0-feature-7047a1-l7fwhzre":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-7047a1-l7fwhzre","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-7047a1-l7fwhzre","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c631abb2994536f331658b0104caaacd41f5c5ba","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-7047a1-l7fwhzre.tgz","fileCount":1055,"integrity":"sha512-Ry+saLAluDUGeq7rlWGGtCl4yiJtFh8Oo1/ilTDYrrqXIa0XDwxN2Zs/cpXJ27TLPuWrPANG0LqKHFuxJSl4DQ==","signatures":[{"sig":"MEYCIQDuab23A8LubTbMOy2vKP8iuYbC3x/F5ABqVBJhqKvCGgIhAJo2W3YXMpwPoct7tGHzTrbTL6K4hdGO47dbaWa428OP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1787822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDcSOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrmgg/+KGs/F9VkLZ60CzVbCXNSQPw+rP++MI8j+rZQV169cAAve0oc\r\nt7i3VsUVPkR7qhBPSdbx1reUG7qpNFHI2TS3Zv+XYmBna5x5uBkl7BXvLli2\r\nfHAn7LFRI5LVVwuJ8NXN0/yF0p7h4EijsLh0OGe6+I1n5AunMdylFBP0vQMb\r\nBtHrAFLlrzmSGuemNydXKwvIJUIRMEO/2+zv6bJHeSXW8EoegBn0xwf3iKZF\r\n7ahoVzjR01n4fLMQwYODsWvJ/ORmZlTAFvRbScuqV251dAAKGSorZJ4XWa9J\r\nvlRxT4viw5aPdc+MKFAjZrvPzwIubWT7ovvLiIXOSrTlHGQUPf6AFYSW+qJC\r\nlf4SFJMsKQWi/lXkUuqopJ1B/JNWO+M/Sr+G0ICqY48ElbeQGQmqJlb27h01\r\nKjTk3CDqtvuumk5Vyxp9BfBeqvYhGs/dqaAYFTNJTH2t6gW2S3fr2O4k2mZi\r\n/3/JhKWqCGhuElZ21hHOhp6HC+i6yPvM48zx07qKZzb8CFeO6gbNyIDEMloV\r\nEkE//4aho5Lcxczjp0ZOqrNg1t80xQIiDHtdj/8T107OoiOEaxmQy6WNIm95\r\nJjznA79w9AiyJ/8iskG7Zb8y5qWVnS42HIcewy8eMU69E9c8lpQUPivG388D\r\nYD9t+F+lYf8Ro4OegYEyScrGNeiVo5Ip4Zk=\r\n=eukT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7047a12c57b11d6cf925dcab3cde7b66a3c245b5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-7047a1-l7fwhzre_1661846669631_0.6189512963165069","host":"s3://npm-registry-packages"}},"3.0.0-feature-d84d85-l7fy70s6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-d84d85-l7fy70s6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-d84d85-l7fy70s6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9d17e75cb8e8dd3a68505ae8c070e399672a363b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-d84d85-l7fy70s6.tgz","fileCount":1055,"integrity":"sha512-JIGTjLwaAvhrdTFJouK7G8+IRSbotffZFjrpuOeIG2uMyJ5CyQl3at/e5K2Ff7C0dHp/1OAUxtSb5nE5OSzExA==","signatures":[{"sig":"MEQCIDNqLJu4XAik4esEXsvkmMOvEXL0XTxct467zCAcMDDyAiAQBfU1R4zDB7rgwcfmrTSXvS3XgSmoK9WfAj/5h44Vxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDc+GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogdxAAhA1ltmjxv7DROKvpFYOq7JE4Sld80XugS3M39lXDwvDiPN+5\r\nY5khN/Ya+JB/uPvJyOiBpyXmDYtzGdfV2ij2nqI8Zt8HkmqqHyEnBRPuvv2P\r\nyvoM3iUFqjX340Or9NX/Uy0uvMd3IHBVT0d5J+ezs+ZSp5qn85dSLXIcFVbv\r\nhSJ27vQXpfR+15c1X8kdlNKg5stIiJAVgBnA5l2LrFn3obvBLqQaz5Nw5z3i\r\nbCP9zk8y5R0A1wFjWPsu1yRFQwFphC6xqeiIyvlxc3kHVcb7EBqSIMJ11HJE\r\nX3Sz1wFzfFwvtAvhT850KA/2cVny8SF4bTytKu5Wk/mHYPnImPV6bodStWSk\r\n4XHksHA1veVIXM1PYyNEfu2C3qXICz8GHDWaUkfue+nQUF14nSfFS/87ZbIP\r\nZx1lsH/5+S4fMjTNcdeV009BP9zfzptLKf4H9/cvCv8G2azGbIrYl7PAPr4c\r\n3eaYFas96kz8y26MuDyC4NWHuHjPzeTX9ZfnAlLfg0IUlvFh8aknb8HKUgNv\r\n9ThXVmxNqSuDtBXbQcpWei3yugPW4ZbdZExu/tMd1RPWQlZyVDLTS/YSSVd+\r\nDOjBG2CWTd5x+ucb1m3k2GKTwMi0FxDY68NU3snwbpKitNUQ5+XgLEcw0bHg\r\nD43TL/MbFq3JZC5dIaRd5uAAE4db0YNS58s=\r\n=RBQA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d84d851c1dcfe23599043643db44c0458cca7cd3","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-d84d85-l7fy70s6_1661849478077_0.29408279645115587","host":"s3://npm-registry-packages"}},"3.0.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d3f603a21739b6e6efa3e2d91e38875e0223b8d4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.5.tgz","fileCount":1055,"integrity":"sha512-KX5xCDb4kngGJNiNlzQ8JDffs7tXyJ+TiVKB2h/0fF08r5cjk8euSVPCFEwuxB1pauPU+KxNcspR8N4G/xjhvw==","signatures":[{"sig":"MEYCIQCg0ZFXYSA9wbvfW2UB47rkdfJ2mwg6HJ8ZOEgSIxwsXAIhAImXLA3jb9ozzd03EeB+YytG/PypPQBGWEjspofBUp+w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDdBlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOXA//WV5x9rewrWx5yRMab+IRmaKi8epT44so6yZ3tJhbidFpurQ0\r\nDx1riiG/CGy08VRSYLfujkkex8SsvzjlkkyJcQqTzqwxm75oFmPh95Ny/JnR\r\nJmKxO7zGipyovpsMy7y8md5qCoxOuDHt5//4hjwHKzbk2jY0nPJ9vgDndL/B\r\n7XrauObQyktSbgHYOQBeP71xqRyrkD5Gloe54C4f5x44unrQeciet5EqvsEV\r\nuzw49QgwaVTCkVdilQmVqNPWWwrHayxCFd8wJU976GEwijmUP1bQXohro7Va\r\noFIcNf6FUeLkk9vsikJDTmZ17OWHqCAYPv+b2P4EuCAfXs0eGcS6FwO+YPag\r\nkwstdoTQBbJvEqQ0g3xA/RxkhmgCs444dE+bD6njhLIBPVh9O2IOEIdGcbmk\r\nhmQPYkzLPgxnwWh95Fze1Z67hxrVbu5EWM2BpvYeoWd5tzKHEYugurvfjCHg\r\nvXS6eKSIqHB82aeORBx96ZxaFO7WQeiSNGOejyQYQoPQ9xPsHecCcl5Plvc6\r\nrT/FPf4HCkDAkAm6S6AxgQBAwzITmWMSQpl6tlBDYJc+qbVDeNzKZFsZyn6q\r\nohMFwsYgFZV1rMv80mv48IBXzAFQi+bINYWdkxUz8ZE409utAek7GEpVenF9\r\nYQBP/F55skRaRvBr5t8s611W4WAkgf22OWE=\r\n=ZtAD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"123f33ddb915cbb330c9f214fc33004b741e9c5b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.5_1661849700869_0.25744223686795964","host":"s3://npm-registry-packages"}},"3.0.0-feature-bfb6d6-l7fyoqjl":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-bfb6d6-l7fyoqjl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-bfb6d6-l7fyoqjl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a4afcfd50a823adbdca637286a4141ea39044b08","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-bfb6d6-l7fyoqjl.tgz","fileCount":1055,"integrity":"sha512-VVx8nObBPtNpSMvtMz3oQ9TZc4UAEmecPT0DOxW7uqRTLg3AyiRtOdbgwuysHWmnkVY841RXtqVESIfkWilpSw==","signatures":[{"sig":"MEQCIDVFZDu2gef8Ma7btCGNtSzx3fdjJgWnWO9IOmOFNb5vAiB3xA8gzsDvBxgkBhjT9BSvl6bMZ0iFem3/F9NOz+MjIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1787989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDdLQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8ZhAAg0Aq8mADEmo77l9r4mcWfPzgPMPvfI8BBDtCB4DY62VDCH9n\r\n2HB7WLlQWnE/sJyNSP5DToknTkgWi2Lsz/+F9w9/n7jW9EzTZPoGDvNvLGXM\r\nxuFeZcJexPS8kNfKQcICJEy3xM6S8K6RpayZCyW5ldmgpK72BwNSgm1+O91y\r\nkrQ86S4UJGcQ0NZVFfjoJseYev/3qouqRp5CXj2P4bBJIcz/6eb41ZO7OxaS\r\nHhs0NXi7JRxXwBJVMs69OCxCsIVsGKPCno16/wLCNVkEXRONNK3W+jqqhEMH\r\nksT4oAmz1Ld1oCkNFe5SncN+r9ouOEVGQM1p7dcKXz+GeW74OlznJI8UxvnB\r\nx0EnULWcolZLdND45wQwWkAa14uA41CgyP/26YWGshPIKdv3YWwEsIch5smS\r\nKwvgd6t7IHW/ZAvVDhiMen9pTGq3IEilJrm6TxNkSvXxfzSqNLclLr3XgrbJ\r\nkRKM2aG+A9+V5TWjiaVRiWZV/mVCkSTuzW8i/s23okkHA7xMtNWXXKHbbjUp\r\nqRq8T0iSrHmcll7/mYCgmt84BvN0MkQoSrdPqXNBhK2ezywPszQcM6pEmDfN\r\nciwqM/IXV1pvsRutBx4SZjVyazdOiWI4wqlRm6duioAOD/mrffEKj18jwLxC\r\n8pJ08OUT5TAr5s1hWKOFtMgMEwiFfFMBNKY=\r\n=1FfV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bfb6d63956802a17506651c5cee33f3e645f52be","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-bfb6d6-l7fyoqjl_1661850320221_0.5730668526782707","host":"s3://npm-registry-packages"}},"3.0.0-feature-388eef-l7g448ep":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-388eef-l7g448ep","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-388eef-l7g448ep","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"743cb1662bb1aecd538662a8a997879a088d6289","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-388eef-l7g448ep.tgz","fileCount":1060,"integrity":"sha512-eLfmWHaDiHY0c+CgHdOda1AAIOIHr8T68S/SwL79azH3kg+fXV6Y9LE42eMTuO6Zwp2DaM4yjVWh0hQ7jdXOzw==","signatures":[{"sig":"MEUCICYDlJ9wiRlpG3TT97IB1uL6g/dYlx3b4iSrGrntuWjkAiEA+aJIn9IDGWZZ8Z6F6MN5fCZiQEGXHn/WxtI/i/xfBQc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDfZrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMgQ/+IZL2Pm0K4Cmv41zo6VQlOEKYJtu3sJFyAw70yWrcyfKuTZV1\r\nDB77ZFMbx2KYLB7lzJULwqLV0ENsHwc6qCSyLFCCJfMzd1xr39d9SywfeZLB\r\nUN5hghXf6SPPE20hE4ONRW+DcqxeTnc1iYjETUtLwcsGKqXM1jHHNvYoFm75\r\nvq4WlupVVq0wJbe/dS/3UlaDSEpA49mC+3dQMO7OxSuKJf/vnV0qRM1PEZ00\r\nJPDSNRvMgT7IlFrb+jbagavdob2BBsjkgO2H/+sJOrur8zSpx27GMtk1UUNQ\r\n8O1A4gvagt/vi4WUoA/8Nc9eZJTMJnFWzRxXznuLm8/HfNBeNcH8XBkzHQ7+\r\n1P4xKTjJ+cbNgDNcAhgzcYLYWMKJIcEDQyE+kiicS70XIrK9op75DklWudXP\r\n//pJtl5UpvxWxAAUsd/F+vvO0wafcuM2RlPi4BEyg4wFOqNrx7bupzYyljnD\r\nCTqQ/A3bvB3cB1C9JXSH+QTb6p4yQkNl1RzAg70ml3VhN0QkAYY3/y3M1bof\r\nLbFltlJyLEZoW+fnV5CYoigDCdEeXT/ryFy/xe/7KLpl8+MWBSYD3QpZ3lKb\r\nkyZ3g42RYUk788jkCxs5AfKHvZxtviUIDtEekNQAgwlA0rD9etTdFcCFQ2ln\r\n+WoRSws3u2QA+wyKmFCL/oL4886s30zf4e4=\r\n=jb1o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"388eefab8e9d71c83d404441829e9f2ef4162f40","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-388eef-l7g448ep_1661859435290_0.8627724003840536","host":"s3://npm-registry-packages"}},"3.0.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3bb6bfd2036a30512aa5bc937a470cbe66d5ca95","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.6.tgz","fileCount":1055,"integrity":"sha512-S1YcQqVNtrqiTGhhaNOzBjt8PXEpEnhc3tCwULamRtq/SJHnSqLd7b4f/rMtZv2PuunrXxw5OyutBlPHkyN9Kg==","signatures":[{"sig":"MEUCIQCwNCYIIYCAbBSVs4QCITP1cbn+xXiYl+QKlcxRzLwenwIgL703LgFYxonRfm4jlxIQjNMXxbDAV7i+Tr4Z1H7qiEk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDwRkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMthAAoaW3QiSrVZ04LAHdTp1/Al9WMWbAf832JoVup5gwsum7Me0d\r\nG4zyjSnPx3CyJjyaPCyG6ueFao0l5uniioS6ffsX4C+9DIM/s+Far55Nnct+\r\n/Wt24yD/PVzIXdRzxHUmCGH+KPObh7HCL749lqXjjxzC3p/7dh4O0v9poh7q\r\nEk3OhD1lNwvmmDZB31UQfHrIDJOF66PehfOgtYAyg73bsNWXDJjx9QGQk8/G\r\n6ecKPngQKsT2QWUV2scwXbLLT3P3UCwBeto9jL+LVxZOEm+LXPoVFnm6/MAW\r\nY0NVrW3C/ISgMh0y/aSp/50z7FEWnAnsKsP8cHH5HbBenLx7Ybwe6gMuLQHr\r\nKXI1dov/mnfeKpe2fl1Qqb8OTpC48OPPlkI2LsDjRPaFXnDm8eRf1H3Prgau\r\nEZtaylBmrZkd1LikUqBqQWR4XCIIurtPL+8YEZZ2Xj/WV41rSsaFc9FmiAWB\r\nTKdda+zdteuRV+heySNCVbCqo2GtCDZzkXBlZ3XP/5UmCZciLWh2wdgn0v0L\r\nvuFMifYeRCDNNBLlyqQalI2fU1q7g1+AU+EBsY17x7F5l/RuGIb3XB74HjkT\r\nnuSc2GMhFelxPnaazsUYFP0au6dnor2APihwUUMi26TAmOGJKzEKGIxVJHkG\r\nCLEIUcXn5QZtGtxW6MBleaGntl+XXRpJhME=\r\n=LPmL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8a1a6560f9191bd37b361d61279690b11162f57a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.6_1661928548023_0.7447731706960499","host":"s3://npm-registry-packages"}},"3.0.0-feature-c6cec7-l7h9va1e":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-c6cec7-l7h9va1e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-c6cec7-l7h9va1e","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"58578fad9e7bef80a086a89a8662c956875a0042","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-c6cec7-l7h9va1e.tgz","fileCount":1055,"integrity":"sha512-6mjs+FDG5oyAIRme6rdBrY/L5HLB3ftB7ie3gRsMNBofoJUcMELHluGmppCRCxQ5i8mINlGl/3lrND0iuvE1Gw==","signatures":[{"sig":"MEUCIFjj0ZrBtVnIDxz4yVpoSP3w4mNHdQZEUPHzUkiUEm1sAiEA37djgKXIeoCwjciC21eUIDPpLWSag90/gCtxa//nig8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDwhAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/qQ/+LK+zur3WICSuQos6u7K9Lg5vuquPiXatClp8cK7HY/XOYKyE\r\nRKYHGGU2KsYIk1gSkQp4VQdHdFUCi2fQbxR1XYYDmB2vVMALxpiq0EzTMbCM\r\nWrrKJmICEquwuyt9YavLzFfjSt7ghdNLFfNDUEhtBueXSwq9QEN4WErh+A36\r\nu1okjjg9uYgYH1EkvBdeJKGLW35KXPRmihwtjvfZlwFcgQyQ9RA0eycE3pGT\r\nnVmnNVOnb2muQv87WfXpjZ+H4vfZ++N+xg6yReNtcb6316rtkpdyyIyUd8Eh\r\n7FEdsbsRP+NNKeY2cNY1mMVKVxb1W7COKSt8U0L0glNjQEo9geNPnlqQofll\r\nge6yKxWo9i1OeTdG/0xjPmyf2zpIxjM3dlyFyQ6wu8GgZB69GNvsX+sRSjwQ\r\nMzSq700VEaQRm9cyAbsG6SQsYK/4Z31MT1ATfZsf6XV+aKXO69L0QMmpkBao\r\ntCeifSiTObrSZaXwz9AAaNP5HHEc1sHoR01ZEBJ+dzg4SKsM5MtZgm/QlnwJ\r\naJfxMKHinKgcK3hBYET28a0IQ4A7QbkSSbQaRwNDj6afZ/AXfRsjpyYFROg9\r\nKaK4Cy15kh0DhVDRa75ufUOV97m2UipLf4jqrBr1o5Dl22joMT05kH3ae/NH\r\nzmVdWZBZOQi083pwe71WIxf+q6/CwviL6V0=\r\n=xUC5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c6cec70cd594303dd3b83e98ef80dec42823011a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-c6cec7-l7h9va1e_1661929535989_0.42561843523034937","host":"s3://npm-registry-packages"}},"3.0.0-feature-dbf3f2-l7hbouq1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-dbf3f2-l7hbouq1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-dbf3f2-l7hbouq1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b7baf064658642c813e7aeaa86821f159d2e762a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-dbf3f2-l7hbouq1.tgz","fileCount":1055,"integrity":"sha512-68SXOfAWD/zhDEgwx7Dejv6EG0Yx3sc64xprqrNsYrZFThTs7ip17DIzBY2488aA8frkLy+o9FrcAHyAq0b8bA==","signatures":[{"sig":"MEUCIQCor6zHtla1qZo+W2aGWvfNOD2IWLnPR/dsBLDvSnRMRwIgJ/U26FEWHDby4unZHYM8OCt1/c2vkt6PdRy6prh76m0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDxRdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmjRAAmKld1AicYLS8Qz0SiQjn5k6FPRSwQ2FpYIPK/vkmM3Zrf+YY\r\nb7Rv2aiFPU/YOqNzFesv5NZQEGh7vtHpY74edYICgcZvactUE8QGxwajH93q\r\naxyD0c9V9DMaXyZkjsJrRrKNk8BiKg/WKz2pwVi/q8CSpjdy+g+1MGPXigz/\r\neg+U6aeBQtuQoiFwdJ9ofUKAotihgwcfuWJmewT16Fy7rZIvE7sEWiincEkU\r\nc9PLIt7FRx84lm6Yxsu105J8lFXGWtwA1cQ4yshhZ0PiLSIYVOBVqueqxX+x\r\nabWu0Hl4f4rQ+WD1gaj+q71sAmqYhqFmR79ydF2w0iH+cBmrd5Hsh2VWy+z7\r\ngAUOU4fswZpqvwnjbWb0QLQNUC1jQCTPrRwzHfs4sNfJSVZgPzOOkrRyxs2o\r\nXCRTfXD7Q5SpnQVoQ3efovU3qky5IbOrko30opjLSikuKphGaDUMnmvRRCaN\r\niRTL1HMMufishu42MrU+cBRE3N0OhI/YjVQRUFL/YD5AIImKgtr30myzOi3t\r\nEKD3UGzR0jsbeDLww9/ZK9r3x5vQ0Ym8qcEm10L+7MHHOGFEbKUvOcuuvEgI\r\njngavdmaOopeCwqraGjaiqdd0/16Gm4d5KbOO+dc9cwtHfnkKGvCnDt2apaM\r\n3eMyjOr4CzcFfXne80dVJ/Guc7aeZM/0fgo=\r\n=YzD8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dbf3f2af8802606b3ade474cb614724779a27ba7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-dbf3f2-l7hbouq1_1661932636865_0.1810689794756004","host":"s3://npm-registry-packages"}},"3.0.0-feature-519288-l7hccfv4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-519288-l7hccfv4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-519288-l7hccfv4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4879a9569b21826161c026063049848e383145a7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-519288-l7hccfv4.tgz","fileCount":1055,"integrity":"sha512-ZEUdJ7w208DLpPhGnynMXvw2kPEFY8Pvc/0oxO3RjxdPaXfL6esK2EnelCoo/dcHwSANCexCsfKpO1j8e+31zg==","signatures":[{"sig":"MEQCIAYeMwg5p3/1v2Q7UWElncGM4b9BNwpE7dA0DjYx2FRtAiAoH4DSGO6MJkQGjfPX1S4o+rq+m38TcCy6cKKX4VBjow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDxiYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/3A/8CbE5PhHJKaYNIMzdSUVj7WXJ0hLkMvEFGv1S5VIxkmdRcJZ2\r\ndrkNuFP9A7+NlCjbm+LplmhSTkLwVTsKtPpfstunKXD+3BuIWaw+pzkyQsBP\r\nZp0rHuU7eO7KKfxExLCWDdO1xaQ2SZeolAkYa2MNyAWgY6zI/9+Im4IoqKSV\r\n3WvQD/pxQLAUgngJNQV778nMKKMLYiJsZ8m92YW4OIVkW3HqAueWC633uvhJ\r\nM4EJx/WeQslr6dwG6KnqZmd5AzyImq1HIFl5auyryR1rx8LoY6vQ2+1CpsxB\r\nHlJsXxGb+JP9bh8NWAfhFNngb3JnO+ibeWy3hhUfeowLpS+IpdE0zbbMYsUo\r\nZrdumUG0krDy32MY3yM1i9JHbQAhHrSERbDuCmr4ZhFn86JjVFPerGJFyRrx\r\ntlykMQ9iaKEjhaLOiPlGhX0xhHP62kmdlSqbQp/DQ6bACavGklI3CGekfYjD\r\nblRw0v6tTm58PLP0R1AaJIWd+oGwweHlleDVn+fBdI15lTPavxFJCvxX488Q\r\nJzMxxiuYdCwxwAedVuVG8O/YTXaCsgiqV6OJ2Y6zHKAsrPnf3T6/8HSeY2KX\r\ntKKCuqyLg07SynyEcCPpQ/IaXKx9hEbBWuMfP6VYFSX6C2stcrEC2IB3dZsR\r\n7Rllz6/3FimzdTxuvhQ1BExzYXrBIrHdH8I=\r\n=J7Y/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"51928893227967a2cc087564c5180036bae21c2f","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-519288-l7hccfv4_1661933720073_0.12544256045264812","host":"s3://npm-registry-packages"}},"3.0.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6bd1c4a322f28ddfbe9722527036d5c6225780e9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.7.tgz","fileCount":1055,"integrity":"sha512-g69D75ldRLgSDFGXDhlXy3v8+XigLjLAFZTgmfeGBt0F/6tStTrq7zJ/+vrVBe9atxdGxpMgkzmzzs6UwYFovA==","signatures":[{"sig":"MEUCIQC970lL6+++X9E4a9mJYg7M8VSH05RQpuY0nSy26zs3VgIgHw8voxN/481+7qBuoinoVEiOCkNv1cEzlaoWLz5LK98=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD07gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoCDw/9GX58m5JuXbVJ9nSgOLiJljVSJZwjqiu0wbMADaMNk7BmsdRj\r\ngJ3bBzSDVOjGSVAPGXyz4W9v0+nJ6vpIexkhQQDrzLW85xe9e7kdisMJYDHp\r\nChGCIK+2hOC7UFO8Zf4f5JLyzTUd6/8MUgg6CgrxUzP8oUNi1mjdkn/QwdMy\r\nHfhEjMxUVOM0e8ERdNWBoruvGLIlGUPuIN1cJgxWPPV4QNT/Zuh0EqKy+1tG\r\nC+K1EhLFy/Eabe/LW/UPpSdwUqRD7fS+S98WgqwAp9YGEfzMNBlKfdy+qI+Z\r\nrE+KKkCRjvSTTSm7XEw50DE60Ds/DIIAD7EFjICTtMH2sNCiUQmD7bPM4QFc\r\noAzDoyuinW6VTflq8R0EUQdQyldboUyS/KdzEi9Pq7lj5MxDZniDkU89KhzJ\r\nB9BJ16Y88eNNwgC8+WafMeZGCY90fFvyPFqj8sqp5DXjqO3r+pnX4i3DxFMo\r\nn7CxMtYzLr7xTsuspr81o196Fnb8L99OPwGGyCTawugNszQphglBFFH7L3Yw\r\nnyW8C1wFRdBanmqcQrJxdNwDssAMKRkdkOzZYUqekLev58pR2CyENUL9I3VQ\r\nUHvEhH3uj7IBGXn6ouSEeClDgbmZ1iwSk91Sk8IkGAc5yOfqlIxlIdp7nvq8\r\nKdQr43bVkliZpEg+Ogru4n/S7msLho0Z+X8=\r\n=40cZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7a25127c87e5ee690a4abb3c720b07b7f569543c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.7_1661947615810_0.9731857009527729","host":"s3://npm-registry-packages"}},"3.0.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dfe6f1a2e8d594a9cbcc78ef99f5e4775c10d930","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-beta.4.tgz","fileCount":1055,"integrity":"sha512-c0f+YBSfvWlm5bp6cS3uJ3y+246iYIP19gs8Du5nkzEuZKPDD7Olzhfdz8OhuMGZzy8DZM3FsIE7zb/XqJODrg==","signatures":[{"sig":"MEUCIDCdCplWclSXPBX1PlrU7rHzheGs/cgRixYs1SXlJBN5AiEAwFhROLRu8ZnUzOPRNX8hhBMe2jCtpPWq6mqgxlRpXTw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD0+hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZNA//dNtFE17deynRXhvlO9fAk8K+hSDcM0RbvkHYKFdDpweo4cUh\r\ny7AXZpUj8waJyUBIfk7ymfca79rBQaMoA+dPthy5h4K/ccc4Bz0nZ8XsNu/h\r\nS3z0mKI6nKjBhYXbuflPYAu9ckBWQiqkR8SHtLNL/zKy8dla19VW+7dz1Ma3\r\nK7wayKNy2BWVbBjpR517hwOX619KYDWhb6rezwTIZujBLm89ralosCbHmcGe\r\nQA7DGzIzytXoVqpATpc0UAtWItu08XrgRWlzdmc7eJGnyHjBxoEJ84/IWc4g\r\nJM7sc/Da37DthTwZuzP86+eD57FN8yc5YXezBQRm0JcPz9sr8bvVs+hqu1Pr\r\n+2QKn6YIcaztqCP/e0Xgo0AWu0e69w4wX36JUEU/h6IhPPws8xhVyNEdl2S2\r\n5qX9Ugnm7lkt4d8Srpk1UK6tPCmAHyU5JIqlbpsyw/HCE8TOcnmeAHtFgd/j\r\nk5VpOY2h2c6kGHGM9w0ysd6aqkKB9vSjpqX4koEYCBBvO1q11XPVuBasB8hj\r\nEvA4GdFnK1WhovB9Qs2KDLQUdGu05RbwMGwIxitAhF/IdEA6Q60AoWun8s8P\r\n/vgFi0dDO4NjWwCkE0w4MO1ZdHaHoE+SXV2ZJYp34TwnamtP+haN8H7QLoZ+\r\ndMBJeXOKP5GuhR5afP5tkRcu8wieoM7U7pQ=\r\n=vsFt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1e65f30b0c55e985453111e786a2a9a7fe9aa3f6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-beta.4_1661947809371_0.7602223282452556","host":"s3://npm-registry-packages"}},"3.0.0-feature-6f8a0a-l7hky0rc":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-6f8a0a-l7hky0rc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-6f8a0a-l7hky0rc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5387d5fc2d4e1bac0fa36787da3a008c4b151ed1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-6f8a0a-l7hky0rc.tgz","fileCount":1060,"integrity":"sha512-6VDUgUuzconbfawF0NeJO8t3mzHp6e5unEnH91yCHKvpPCBNuPsPHsoCNEylriJePZtVqN3ofqkmBPePUpsJfw==","signatures":[{"sig":"MEUCIHOca76TE0i0iWkYAmOmQmR8UJCIkyR6F75dszdB9XPZAiEA6Cvd5rW4hHeSdrYoT27SLbRYdPEaw8yCxFRgFgMwrsU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD1EIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNnQ//e+KY882LlIIw5y3vlj25HIoatpcj9L7zWoF7IWW4DaEaOu5Z\r\ne6zIiM3vo8/GsdEZklEhHNVgJRY1CCY6st4sSaP8b3x/srVq5jbQF0ehGjkk\r\nvY3pW1YV0vgcA5uxGUGG2hrZmZio5IF9OtnEFQ2WVAzlcZgQDVKjpVuuUSQU\r\nqMPDx2I+0sHimBmy5YxZy1dcXwxCVqcEKPr65vuAvDtX2MpgFdCxha1spaPA\r\nxyUzJOIeU+D7RPPT9+Wtj67Vex+2dqD6p5WuyjQy9ov8Qr669x2klwln6MEk\r\nEp5eshq2BIFmZ+Wdol/JPt8nigVDNXoeM4bUw3Y/ECBxDkLujEEjbyNU518n\r\nKzEgbKsMspidPVxY7PK5Z5hceikKk5qlroNr3UX0TNRJ5b1lrg5yvARK7e/5\r\nOIwbbfjDVXPnEK0GE2ULliGh+jLwhSxRiFS1NbOJjSRaA4IQm4tp+Uf9mMZb\r\n17fTNSn61osZwOgU1gyNNWLKjHzhvvQ2sDQC7h+G2bR+NPKDLp6oT4TjaEu0\r\nfiC1Jqz1VtkQvlUq2d6qrRwEVgVKHDheKr2HfqULWyy1oIGhVdi9HHpMI1tP\r\nnF16bsmp8xhbqkkOEzhDmtQpk95slaHEkyzSQaj3nwJ8h3loxFsXcUlDzA5w\r\nJht0WHC9LalKEtAuoB3hgqkVLVgMlOYIgp4=\r\n=LZZ0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6f8a0a70c1de8055161f31b21225bc53c6976549","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-6f8a0a-l7hky0rc_1661948167976_0.8664266376913896","host":"s3://npm-registry-packages"}},"3.0.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"df4e27449c179e258b9ba51c832e8cad858bf3bf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.8.tgz","fileCount":1055,"integrity":"sha512-O7HVT8b5orcDnjun1q9W0C8NRaddK2XFUWjCyyJP6k8P0ziQg5in4uHv4/8135RGSz7rEqzatY5uGfulIIE2nQ==","signatures":[{"sig":"MEQCIEzAz4LYmGd1px7ju3HR3ZkEFVH0xxGTwjw8jIHvy2duAiBUTQq01YrfdWosBR8bX+8tb8E936IceVZyZGZtt+H0KQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1786255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD1HDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpR/Q//WPTYQWwyIC7d/Y9tldwQ2+evFznvER6IX6rwXBTZBJzZzFuj\r\nAgnWl4U8LNSnPlF6X5VsHZ3VI7U9Zm3c+bZhtVhcWarO/MjKcQa+6vbJ5uEB\r\ns/Goy05QYBneT+3NR/5nDLVpnMbyXrakbeF0nwdRFNohcHyl2Oa4B+hB+jaq\r\nkoS8KHuOvs5veSBzOhWpNzIWOmvh0QeRDr+H9CJ0eQ07nUtrNhrE+TnOkjF7\r\nqtzWWrHfSVXMSeCBV/3o9pDlPLyMHjEZ69AwlxLGLODvbwUcW/8O2N5jdJPe\r\niKgHEkKfCA2uojCZskGFN1qYNwtb78E+qHnb2+xIaM6R2V9WSvn16z7bD2R4\r\n2I8E9HAI7ePp1DSonxO1ftbY/dKsnW+5l9VSOVaYBFEic+P86Cq/3Nxvrr4N\r\nmnNh9v0UaXgUxFFsH75apfpo4bgpj7JML6a/0r8WOZFPHPlsIUw43SEwr8Py\r\nOvuXH2OgDPM2sWo/NZHAknDqvxrgwP71Su415lrEPkueawT9JRcBTy7rRJKh\r\nGR1LQo1VYWzc3uUy0nTgAunco5EOMOY0DM6u5Z3RVetvkoAKa9M2BMI0RWVv\r\nQ4LPSif8UhSHZR+VF/kBSYveaYC8ehULeHK9ZgDbfa07864iNi5c7yyBPRrD\r\nvS7H6+QPmCtpoNrk1D//Epef/fA9m9kWUkg=\r\n=KDoB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ac3c3afdebe5701ecc9ee90145b35c57112a2213","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.8_1661948354879_0.3596909881391037","host":"s3://npm-registry-packages"}},"3.0.0-feature-e5babe-l7hl2p0t":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-e5babe-l7hl2p0t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-e5babe-l7hl2p0t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4397899d6776cfac2fd3700443063872151c4304","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-e5babe-l7hl2p0t.tgz","fileCount":1060,"integrity":"sha512-Ils3S952sNv0gxbme425noJNIzLpy2wzpCxt/AZbjQzIv+U8UB+cWvL7JqAk4EiBv2NaKjlGyNVHz3z2y6R3TA==","signatures":[{"sig":"MEYCIQDruJS7VDUXIPSkawrNVMf3CGOo/QRk+tAdlgDtaP9VEAIhAOvpa6YGAvBr+a5rD0j7mONpcunDlnSnjpla9rlsXLLm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD1H1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9GA/+JAeaRPYAilC64pE896gfbBBhUqlET56Wee5qvdzYSs0vNXl5\r\nUtwPGWAjm3p4h+pGJTl23Q/CJJz7BJWMK49N8kotPO/qCnVe27Q3p6N7NKLw\r\nP9zvcYbOgtmXzdBlqQXcnOe0An3J0WmE4B44E32vglSMeCAwrwlGSPZwd3qN\r\n2QVk3aX+5OGWYEtaXPEEeso5yZrAQVcd+gjdrQbSIyHPR2iLk9HBCP0scB/0\r\n0P8nrrC1DiNlu+CEGRJlUhQYwIz+3L3pAAZeL97JMIrE5tedU8Avlj3IUc9j\r\nHsLThUbUH5knp690a3YWfCiQwpT6KU8KJCmzBdOIqGY8gjseWQ2SPdD6ZX8B\r\nrX0q9Z0GPvfIwMePARUPMoH2f+ofcUEhmXq2lKI5RBzu9dd/v+ZSC5MoCpoJ\r\nVCMj8saNscZggXD623pw43E7UmDzd+eliM/cibyLo3fBHi0Qr3WMmbD0Lbdf\r\n6elHsNqePNUPhg1815OBSO5/tLJ7gkASdSPMKzrAjwteLyPZruv3f4eRrIIs\r\nexVbHM9QImf0qDhXlXuTXKLxhShkCj6XF0NDpgCTRwWedJqCZ4IfjDGTlTnf\r\ngZG402bSpYfLQiYIMvY+eO7A5If7OfdM8AbxNOWhc3hJV4eq5B0GaSUoJecs\r\nfIIIu/OEGvkDvU2NgRy93cekXK9hKXMXrh4=\r\n=rzZO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e5babecb92a20406e18f9af09aa3edee37fefc85","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-e5babe-l7hl2p0t_1661948405186_0.30912338896424885","host":"s3://npm-registry-packages"}},"3.0.0-feature-0bac7f-l7hmedmm":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-0bac7f-l7hmedmm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-0bac7f-l7hmedmm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1383bcfbaaac8e82ddc89d10272321f76e0a1d9f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-0bac7f-l7hmedmm.tgz","fileCount":1055,"integrity":"sha512-2N1GSUPnXiA49BKEcdIGLfz0JFaoXipj1O3r00Ad3BzAGQiwcxswp2cshWIHJ3cI0gbce76FuskxtbzpWKYCsA==","signatures":[{"sig":"MEUCIQCAm/P1RV5xh6ByFKS++lxTOfjE6RMRjQYW2ng8QjkwRQIgDvArMnTvMEdCFx2IENSB7A4sM9SeCx8d0RksrhABdDM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD1qbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCgxAAom1pOt7EcTaDTlRqSkJk/dis7874iLBcY882fLD8q+MfLNo2\r\nlgQRt8orFNpCpwMMv3B6JKQpUm2XBDkNsmHyAmZykEX1b3BlW6qSLkeppX1n\r\n06mtOyTPWDvowmZ04+TewXLxiI6Olq3uElFio6nZ32O0o4P8xS0LwJTiUiHc\r\nGYGMa4qSE+LPpFSSunRvCCermrFwL4eNn7P3wRmNUlMg77G5XG3SQyrxs4tn\r\nfj6uzhBAJWKVjq46nkDsWsxEyD6+gNXDnaJphX2qjnx+aP/ozce/HMn6Vvgd\r\n/MSaSTZdo6xgosh0iHS05+KUiqM7XzPecdGp4pZtnF/VeI3rpCSWsfp+ybNE\r\nYQSG8XuuViK7tHDk5ONtUC6zKrRieBRq5+/gSJ6WJQUwCAd+oyxzXQevptOY\r\nxhy46oHsjqMyn9+yKvTCdtEdHvL61JG88HnE0zNz7Nkod2gwEObqwEUkveIB\r\nejY7VIZVf9z/C2OKIUyJLK/JtbhQNMT/wqArsl3ItZmmoCLaBJQy1l27juhp\r\nmTmtIl6WlSlfRSw8ssW6ceGc+oeKxgrcN9YO0X4Mc/28hDLx6O/nqCeL92cE\r\n0qeiUIxWnW9vqu/cyM3lO09dDfpb5g5IujU9Lmq9X5ZcuqJbExObT0EngDyG\r\nnAH60PsEehEZcTNLGCZvvGNBPjIs1Wm07tU=\r\n=pwIt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0bac7f4e95e2b6d448ead7fe7074cf5892a58481","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-0bac7f-l7hmedmm_1661950619611_0.5227366597922416","host":"s3://npm-registry-packages"}},"3.0.0-feature-322b7c-l7hmua2b":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-322b7c-l7hmua2b","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-322b7c-l7hmua2b","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e9c32dc34da3910c766425d4da08049fd9d393b2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-322b7c-l7hmua2b.tgz","fileCount":1055,"integrity":"sha512-EOtH7FL7Y3NvxMoUgJNjUbHvyOQe2EAwGuwRTAlj4aqBfpnSzaoPDuCMUDBh3BI1VGxIjdrI28wdGQBqC3p04Q==","signatures":[{"sig":"MEUCIQCkRb21LAknXcM6lCFGYH/68n5c9sWj47G7/eEETMtzDAIgI/QhH4IolYkflWrbaQUpaSWwQmJFIKQyWIVdcvdOous=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD11iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtNA/8DR8y6AxLyWgcz3cSLgIWbAqsubMOEUFyawkoHl1jDf88h0xr\r\n3QrcK2fwhbfP3uTm3zr6x0y1pPKSVWCfDPi1V77SzTE+bbeKN/Pe2fHN5dTH\r\nzyd2gbFb10zgCBWbtt4RluOqK15muqENab+p1xXrsU7ucvkiu+u0fmppCTud\r\nS2gP5t1VMqp6H+JFYGVuzWWHD7JnHDL5nSzGBS3Nj6cDpwRb7aRKQq20UOqk\r\nkBExxgq2mgbEMGWjf4Cj9rEN00YeWbQsS1kmYsVcAqbI+aUDlg5PvzYw8UWM\r\nrs+mRmSqO3+korf1Rc+mEnxOX/9167DSLIh4AAdRs79hk6LMcflBoJT+Necx\r\nkDvvOornK6+oyOGb7gvMa3fjup2KaFoF2P7/Xra/RqmhLW3sXRTrnTH0Ue9w\r\ndgGiGl76JhqMoQfqKpG+wOibg8qVbccg4LBKGrK6tZWNL2+iNIC1qXs7+TFj\r\n0KkrJwP05b8SttIqt71InD3ARVbb8e84zN1DlulRTBI8KEhNhGwnB2jdNJ7l\r\nUpgfzTltgaWw1y070q9eKmn/7+yvoUrZZqxda5Jbag84mXL1cndo8z8RjBfK\r\nDcl6+EqbDNaiZfDJAoWkGIxBPyNHSiQZfGC+umEnjhK+/kSK+pY4Wbn3eFFQ\r\npjmQTyXcS+FXXuN9PM5bZ/6gHtnsupmiL2w=\r\n=xwH6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"322b7c49b969e31a8e0ca1a4e0a0da58319c189a","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-322b7c-l7hmua2b_1661951329866_0.040489547900514955","host":"s3://npm-registry-packages"}},"3.0.0-feature-43f677-l7hn2jxj":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-43f677-l7hn2jxj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-43f677-l7hn2jxj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9239d7663304f981461555856ecba3b026447294","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-43f677-l7hn2jxj.tgz","fileCount":1055,"integrity":"sha512-t3KAZgAEmx/N87N0nqYgEP8766UX5NWBvQKE3Hq0CUjWrrNbXMw9xATXwhTuXwF8SQf70Ppn2NGwByvRCcVdBA==","signatures":[{"sig":"MEYCIQCQO7+ka+v1BUpxvCXXHDfQ5FT5U3mosDolxsjDLFKFZAIhANTx6YfynIIrGwSawJdc7+tJ1gE8vdSTz8HGGYoCgDaV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD17kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkpQ//ZA8fumNjWZpsT44KuHNr6nJ398PboIlnieqOecnkahCIKw7h\r\ntk4UcUTA+Ub1LM43SOExPWRjhQ5w4tsmIcptzvcTfTloIsG5D7XC3jVHCCJg\r\n9ktAKw5lZLjyM+YKU2TBWMLL6nBGVDVG39PyXDo0NxLNNuJhGQ4QPSDCb5pv\r\nZI4vYDNle4505Cl3BRdm6K6qrvw9d52jTd9SvvSRuBEsNFSeQAlXDOzGjdah\r\nxc/XEKlog0wdULC4xibLbLx5oDflIlN90LI121PhK3r39ITwjzNKsO26QknN\r\nI4s+FRx4wEj/zbNShn7QBsp16z68GVkmBsn17tbpb+vQNHPMBBSCmk/bNHKp\r\nR28MLuhgayIbSci8Lo5fVPgNZ5iv352x6wjcGipNIs662JyTtrjUYV0eBvYp\r\nWiA3VnBRBSrBmN6AyztPnpV7zfMS/pCmVn8Yk/+vH/UQPQEKIeVQH9AC7zTl\r\nJFSrQFoUDRi3ieCHAdinIbT5adzVekHYhik+lGycsyn7JezUSrvGgqLD5tNw\r\nxvDAK6T1yU5kiVo3MzUiVcDN9yT6ZxM0uxHzpsdxj0RpqxEx4rhnViqUuKDZ\r\nXaRkP6mcqpoyVn0Sm6UzXdREY9a4r2NnAar3dsUp2zOtPKNKsthuWHESvL7s\r\n7Rf477FWIGcnGNhPJF6+cx46qo+dl/ivDsY=\r\n=rMPV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"43f677a3dd3c902baca3ff0a4f8400c1d3bb67c0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-43f677-l7hn2jxj_1661951716525_0.2348778869779855","host":"s3://npm-registry-packages"}},"3.0.0-feature-4c6506-l7j28pbq":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-4c6506-l7j28pbq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-4c6506-l7j28pbq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7040596ecc643a2f8299364d98441c2a072a2f78","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-4c6506-l7j28pbq.tgz","fileCount":1060,"integrity":"sha512-LlgBaQHPy4+ZnWpZ+ZLKwjmkwyBWgR2eRhgZq1bgMLFyXxUnVX1dA3NyFSDYk0IwDlADd3+NlZFQFTXgWec0Bg==","signatures":[{"sig":"MEYCIQDmZcg/xCUR9LRC8cDRAe2TrWA8YmI7y6U+zvRuzWKA5QIhAMKzMpHpiBOYOXGve1SNoOhWa0mvTfA35+YfNlwR0w4/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1769467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEK6mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9xA//QnrXkXEWfmSyy2LgXiYARC9ys4PVO2+/3fWIAlP34upQrBKD\r\nPg9sCG8C+k+SRCxxJeAN2wt5UxoIDp2miDG3KKHBWDQ0raBmcjymxDrVxARm\r\nhWGWmqW4Az8SPtJe6cAyuAeALSmM2PpFc49NsLG+JAoUQg2dUqweUMPk2jn9\r\nCfMqmvZobbH0u3Zioj86Odjbwtcuj8M17sfEPRsdWOIpIlQmut30xlLpfIl2\r\n4IREU4wEkfA8gLReuDWq1FWm5gG722vcxz5K1ASSv81B0wCnwxjAZqqZUl80\r\nX0glNq7rt3kuuX8EOPvUHrWdCzwPCmgQyv5LkUWoOLnch7gWcL/lX0hdNarD\r\njQyYtSD2zyfedUzBskBvNSMtqYGs8tJIu3a8NmsOG+i9eeguIFkoo2QAZ4wd\r\nbX8XAq5TqYm7PUYqJseLJrcONghZrD8Z6NpR4A4u+CdrTxz6jmiA5e7HC6gK\r\nF1mpOHAUFvjK28InCFBDG5WOaFdTP8RROB/F6orNPZvZvJyfFgEoPqfxfmz6\r\nuiERS53/PQhSfJ2DALqGHOL0p9xnSA3Hj71EY5W3A6tuSOXTW09hUX/eDjB2\r\nUPD/9IwRGY4IDg+ahLMYhm/Q23b9FuqTBiWLIM8hiI1mzz5xc5Yuwq1EgB5n\r\nJvxL5uK1tnBloR7lKUyw4fILXjj7QGQbjQ8=\r\n=jEjN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4c65068c91cb568e6b8aa329bd2a7d3e64d8d0da","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-4c6506-l7j28pbq_1662037670416_0.6861019209579653","host":"s3://npm-registry-packages"}},"3.0.0-feature-e4e4bd-l7kfnn0m":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-e4e4bd-l7kfnn0m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-e4e4bd-l7kfnn0m","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1e4b4296369b93dede6983f179d71f5c760aa49","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-e4e4bd-l7kfnn0m.tgz","fileCount":1055,"integrity":"sha512-eVaXvh3wlSiOY7vFQ+CPSCyOCSUcmYhyDRyBcKPpIT/urbTObIihLNJxFIlHf9G1htMHZrKllB8tuEEcg0QFoQ==","signatures":[{"sig":"MEQCIEJqgZlPqr1ROBz9v7wQlAWQlIS2k8PCL2MipL48Im0zAiAeAe1c01iFRNFh43PTwg4Y+Ch70GF6SjLkV+Je1E1T6Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789571,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEfLUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoqmg//SP8R9OiWE2JfLiyPWv7eSwyXK3HAG9lL/NHXdZ1HSWY9aRSv\r\netp/ga7UJ6CxgijmW8IQhM9mWb5DNyON+Rh0JxZmlKCilqkejmHln8oZPakv\r\ndgTN2pdCTeDT+pgR6nxUWiNE3C4uF/E6MFGX4cMLnWthYs18LqWVrS61w8Yw\r\nxq76up92/g088z2ClNBftydQRiIFk4IEEIsxv5Rsb4WpDRsF+Bxv/SKjV96w\r\nA0l3Hv8LXokxBky2OB/M7p8TQ6yUhwnYz+AIIZIHcaAvQIcWf9WQohI2UDVi\r\nMlcwwXmfIVo9G6TUbTAVUD0NtaEJNAbtAsc5IRRtRZY9d7cue47Y8dQxTJV3\r\noo25L/a6VZ5KIZgo3ccIYxP2l6ziDD73VpkFEIAnYRdoLHGpJVz++Ojjx7dP\r\nOvkz61WcqbQlXf/+4oeTCvc+ibJFyjthwplp7T27B/QJrj7Z03rfroM1Q1IL\r\nyYqqqd0e3yxxbrdonXrkTn3pmXz/aNiWVwY3cLqYxH1szO2iJuRzvdeFD6jX\r\ndBnveU0MLGB0qoGUQsslJeeg17oyQ2D+rz0wqR1a0cUGlZM7k1JLQy9fpBBr\r\nhDD0AjCdxx/LZy1esmjrhOhqPCu0U9fxPs6gABHan77FMcBRS5O4i/6JIcxS\r\nmzdJPlngMIfUBty/dwonaaQ9RVv2wx5m9Bc=\r\n=q2Ge\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e4e4bdfc94d979b94ed908d3ed86bef9719beef5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-e4e4bd-l7kfnn0m_1662120660631_0.10126054353493585","host":"s3://npm-registry-packages"}},"3.0.0-feature-82f7d9-l7kgab5n":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-82f7d9-l7kgab5n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-82f7d9-l7kgab5n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9d899932b1c4ff12e05eec2540990e39539ca36a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-82f7d9-l7kgab5n.tgz","fileCount":1055,"integrity":"sha512-9w/MCwt5Ix3xlXFILCGmMMMXq55qTUonuJDaV1+bUf4E+pNIwgAXyvdWunH5cj2TBdUcEppCZhDTSEBLaUIhcw==","signatures":[{"sig":"MEYCIQDwZRbq3LfiXfzLRX5VV4zN0nliZHgiSY4RdsXqouVUewIhAPMFoMe8xROUJFPeOEBM4U7gUQBkFbPM4lqPmEueiTBa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEfcMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowVhAAnOmSCPl8b/4x5RGTrsCMFXMJvajl1jKbL0wN13GUzpf8P9Wm\r\n5Itk5Wf+2V6/Kg2cg9eanGTaZ/ZR+rwMWJ+hRgpQzL03fUez2CIKsklyLwi9\r\n5MTbhYxLPWO1B+NIkNK/pG7UPgycm6NDs6fkcEr/ofuZH3vIfcFcb/HTvzyY\r\nNppzuUhmPeDsxB3k+qTdHgioKbbHK+1NTYSLlqKrAIF8T/JufAe9r+g6hp0F\r\nnNJEjEVNmEY28CPNrgjzBlB5wecLxdCUhEfdMgQjtIvLdKRj6kSVqdX39pjM\r\nU/ALgpDdl10Sh+akknAAgc8Mk2LJJnbx60n+cMtup21QUF+YZ+nJZ4UbhRyp\r\n0TPQCPzkWP0BiBRkn856lmeu99ebvM2+V553VV3qujgYMVjDKkh7goTQu6hO\r\nE0cAeU38CAb7BWcQ/KUemdwQAAr7DKaAwdVpsyDCAaNeAE2FfDNx3qIskOeE\r\njzMbh5i2EikYdBOqt6/bqE/J3yp/0+NvlWg005+6s/neCaCNBk9HvYpttCXi\r\nHJRbvbEFAil0TP1zBqbfsXN/YNdBf2YnZLk0SV6ZanhXIpHk/ki4rcwtgpvD\r\nJPS/hkGSpv+BDzkUQY5JYKqxVXC1ZK9O0PNQuaqjNUaA23XJOR00WvggxIUC\r\nT827wLZtj1sJ95snIveb2K5CIEVnnyULab8=\r\n=dW6S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"82f7d97031700bfaacb46f64f505fe06bf57240b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-82f7d9-l7kgab5n_1662121740483_0.4574032982651368","host":"s3://npm-registry-packages"}},"3.0.0-feature-500ff4-l7kglgqz":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-500ff4-l7kglgqz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-500ff4-l7kglgqz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2f4680f0be92856c3dd51a2126d2d4132a5670c0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-500ff4-l7kglgqz.tgz","fileCount":1055,"integrity":"sha512-F7Yumxa+7H7yoN1DArp3cnuklU8AmkPc1ZYij1LtlpxzN1mb9SfRCzW9vVEgLAQlA6j7MrrObLGy1EPJJ708qg==","signatures":[{"sig":"MEUCIGU/w+Ix58pqcOLauJdn0W7OO9GOBaPkg04mI5DM4vTcAiEAvsvma55xrFVPZwnaB5Il7etawjbVjHLa4UIjaGV7mgY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEfkkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqDbg//V0jHYMVSYxTXGlphqOgtnKlmttyT3CjJ5gh0OfS+LGoSlNb4\r\navwEVE9QgaKnVJmDq5ADUmmtp+0N0usowcCWrS4CPeSPYq2Wo1D6jfJ2tWVw\r\nEfOLV1Zuln/Kg7LCWCXHKW3hIr7lzBTnFwY/DQZA4FtIV94I53RRRk4jVutH\r\nSi9N3Hc/m/UNVaaMwlWCa5iaiY4U8szlP+fhvA9hkTl1GOlfMLW6ofS2oHyz\r\np9KALXEWZJPeJXTeUcU/BDyKE33wl37q0+7S6DOXA/4cJif1jgLWNay+K7uF\r\nltAcUNmuoQn39YtOE7ftECqiIlt/Ffl9YegfbyFR80LUKVgdJFC/c3PEOGa2\r\n3cVtK+0DAEVAeocy66/paqzDX1G7vJghsDd+HN7b+MzqPcgsCzgoykea/pXQ\r\nFM+OzxTvNCk5DC/iEn65ax6V5q/XAvXeDVcYsNF5UBAzFlDJL37JJsQ3ejky\r\n/s8Xf23jv5omiNMh9uCSWrJqTv1zABCRLOTWiuYpMAi6LFES5mQoinsDFzRB\r\nHOg8rB6uQoHiySPyZef2eZNMyYO5e/Q4HXQE5DrS0hf0Uyv/L9BGrcEJSTO7\r\nO+7IBCznevZiYUzX8XVdZh6AwH8Z6NY0G+7LahGH8c5BzEhlw4/Qmm8xLiy4\r\ngQfeyaQLpXbuxpQl7/ENgnh6283YctxRVyI=\r\n=9NRm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"500ff4aa13e0ff9ed54179300e23099615894352","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-500ff4-l7kglgqz_1662122276667_0.9432252777227419","host":"s3://npm-registry-packages"}},"3.0.0-feature-ab35dc-l7kh6n4z":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-ab35dc-l7kh6n4z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-ab35dc-l7kh6n4z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1209c496b9cf828cad242b2651bfd98c99c272c7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-ab35dc-l7kh6n4z.tgz","fileCount":1055,"integrity":"sha512-u3tUkONphXLgRp3iEbAB4p80MThVVhx1OR+fqsQKYG5aTbj10i9u3KJtEUvqQ6wiHvoLpHXW+1Xq/wjqWbG6Wg==","signatures":[{"sig":"MEUCIQDzdU0o/Ozw9JgfgHZEB5N3+R/tJ6ADpY01/NL4JXKhnAIgR4CDRZwzzyliFjBbyyCnCgkxr2RcWUyKLkhAqvhVpe4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1791929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEfz4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVGA/9EG63eEEzFOukZFxBjcrYmi+KeF6cok7hOaxVyiiIlRh6mVD+\r\nMJoxp7DDPtup/Q8QKD2tb4Tz/2qu6rCPjlw3BCzeLIkqS7ylFln6UYHO8BWX\r\n9rxMmRn2jZCyXOmHhv7ZBDC8CdaI51ParpEpswj+BQKt7gi/o98YA+BjD0MZ\r\nAsOB8+Dlzp7mNnZ5Mml7kbFD6KwkgxbIJeEH86uWbDB8oFEwqZLWzEgzu3Nh\r\nNp/oGH+z67WTwt3glB3x2BV6+xrj3yb0xpzwejSGwsmkYPmmdGiBt1h/u2ao\r\nFbhXANdhzQ0xpGu8Yay7rYjhG5XCz9kmmH2QAc0TvDEZAX9aTg8/zYfAxBEK\r\n2pspJdE3Ya0dSfc9gHH8js+UzfaYsKqDyiVPLCa0FfFUFftEeVQ+sa5CszVO\r\nFswluuKSNsCr3ykqyI9SyXY6LfXLdgF5GTpcajkIFhr4q7Hi/QQDUBSehJtR\r\n7cJuHLR5jAJJZZ4Me5ZWAeHuadXGjHX2itZ+65HV/K9oJPr0FXJjy8YgGBX4\r\nciOhsJ+JYWYq1EW84s9gGTGR+z2IOPtJSjGmbCar32lNJPyqr+nQDq0DTn6x\r\neNUm4+ny74OcspLA/tOJpdmmEkLfRws25eujPeCCkL84r8YglOI35w0IPw3+\r\nB6HR+GGdmVjrwu8SXKdd8jJ6q9w4TwDqqKE=\r\n=uM+Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ab35dc7b859a4bbc0b5c6f7c42397fd768936c5e","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-ab35dc-l7kh6n4z_1662123255761_0.3842657334630355","host":"s3://npm-registry-packages"}},"3.0.0-feature-f53742-l7ohry7o":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f53742-l7ohry7o","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f53742-l7ohry7o","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cd55aa728ea3d5d0a66bfaacb6d763645588a81d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f53742-l7ohry7o.tgz","fileCount":1055,"integrity":"sha512-ThO1X7l6DTqCNrlpM86zaUeB3SGuiv/qe53ZWZvz0LmCgxdLdxHC8rTLlfHBfrBxTL0uEqhnD4ObTL7LTqGqDA==","signatures":[{"sig":"MEQCIBXYlALJDjdEpGtY/ET+y4PIQDTR9X8z6LfKnd1Kw+rZAiB+TlHTi3EbDfJN2+fXZPDe6UHDUaTLvHdhvmPkduufHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFbGEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCww//TCZEOQGKQFdsac73P7y0oxQmjjHh14rR8XeyIkr6/Ry49Fgx\r\nB8trrIUNe4ljR9WgkRY9r+/O58aDzQgd+/a8+3ogaMpwdc8e0MnT0rYbEdBo\r\nk8aCdtqa1IfZh0l/IALd/OamCVaSHCQfQLe4R6ym6RV758epmkKaNbc323tZ\r\nfhvAxDUAjasd1cUKV+WZY/s/W+9BxSu+139eFrIMf58ekMLp5yrManr2GbkB\r\nNdOdRY94clkNG3LBvAOsookW73FEF8ixoF2uElYIHH6pcIPNWnB71eVA7iXQ\r\nT7eBGMIx/ygwMJCL7BimxDfl45dTx0Wnnbqo99BjqF52pChnHVxraESJoHgk\r\nRVzids6zpucHhWPfB/RQ4f2CYlsVHEO+G+EH3hZBr/lQNR6PaoZFOc7WjDOL\r\nuwD03frGwv+EdhDKYS0/m1CBQKKCB6LPt/0qqmB/hE5xn/QiDR1OlTM8Pupb\r\nVgDWt2KNCh86756/P/bnbnGnn5ABXLKNoI1HWrdvq0uTwXQuXR8xDs/CW5a7\r\nFRGZwjWJjWJAOR3zIr4wA1UHkdtoOaqkP60eAtVAyVGfG2wffi/+vJgVjbWK\r\nHRpzoiZnr8okRdr6xhw5ghxt7UfSyIpoA7Du+b5tzbfa2Lu0GtmwfXG4bn6G\r\nyPxq5W3Vf+mHhWelZhjmjHHLzxgo61Szk5A=\r\n=VjoW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f537426f9c593da95878b67f564efc2b76665241","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f53742-l7ohry7o_1662366084110_0.6646826726816499","host":"s3://npm-registry-packages"}},"3.0.0-feature-b947df-l7oidacc":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-b947df-l7oidacc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-b947df-l7oidacc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"29c9d446318562cdce61ff35b4889acaa8f11361","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-b947df-l7oidacc.tgz","fileCount":1055,"integrity":"sha512-vGVWTgo96lfV3cLwzAWyieU7BP/us5acy1PlEo2cozq7usr3V+rmAy6gIt+KGeHqch1oMyBhr0TRKm7W11Hp3g==","signatures":[{"sig":"MEQCID18wGcT/lA9SFcmzLCqGNzY/sM99kqcACjpuRMsBeeZAiB77+Ueb4cletY/aMXATAHqjOeUIZy4HdTgGXG/PNJhgQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFbWEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXzw//RJ/EVYsNx6nPiTWnIF5uiEnqMa1KvrUgxhLVBwwstCfM4fjp\r\nx06Q+vtAX/irEOVaTzK+xmtJyY+S7vg0B59KlQeQpAhafr94bnm8Nim7fz4M\r\neai6WaT/hSFlnnert4mL1QppxNJbxA+b8e1iyChdeRMgzJk1mF7INsQqmpY3\r\nlH3zb7MWFgWT0fWkFPz6YmWZzxmjbgos57yxAY7TLwAuZ4kCA7ZJscT3ce3u\r\nLYrK3FNC5yYqoXYaz4G0E4g924A0AfeI+NmsH2gRgMNL1fCiQs5sYJS+BbFQ\r\n6JU1DDRr8RCP5NYbGHh1gQaCVSs5QYpVncEuFSJDNkDbNIJYbccwxGXYS6K5\r\nX8TkP0dMvK4KGnl0xBzcmJa8DVjk/EISfdLYQhb9O+g2RvdOX6VhL2aq6aGU\r\n4FcjOHJWfyXSXR/F8FH3sk0272EghJC7l72OXePHeB1jJkbcPy4SSIu9ck94\r\n/6dT2Ah5ajNDOLZ5X95Vvup50v5+PyMfVFWHXgiLW43cRANIsKWREyme7uD1\r\ntwKD75IuKCVfRk1B/mjDY7ZME7tyMcJE7ozhvlApGKvqMgL+oE57eTKBjJqO\r\n7gSOfvbMiXC/WERRzEFuagnYNU86+cqjjLgJSky83QuqfK1ECSd+vPxqFh8h\r\nv4dWd+Snde/vdqfx4e4+HK1EP/q1Xka60Vg=\r\n=GnxJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b947df63d9c29c9c329019e106d4978b1aecc302","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-b947df-l7oidacc_1662367108494_0.1841745246832025","host":"s3://npm-registry-packages"}},"3.0.0-feature-7b81d5-l7pw92ab":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-7b81d5-l7pw92ab","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-7b81d5-l7pw92ab","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f8c8178f52daea8caa008542b14ea415bb3c5673","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-7b81d5-l7pw92ab.tgz","fileCount":1055,"integrity":"sha512-5QKkLXzXG1xIFyOoz0TNXnOdzszv9YKN1AY8bAR8nGcfDMeDhJOjMgblB25vd349TTI9HdfEoUSgQXgM/OTgkQ==","signatures":[{"sig":"MEQCIF1teiRXjLlx8T618+s/4gNEvkcNsyPbFeEqoIhV5zRYAiBK+Q2OZquQJ1g7gasBHCppvE0e/3kHRd5GiLWsxxkgYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFvytACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEAQ//aQJhmE2jxYCETdDF29REjD4G27McaKKpHB3BWt88T/40/b1o\r\nB4zbgXEUhBn/OjX6AVy07lkIT93RkA8Zb238YqMFbWD5Q49sHrB/k9wUZO81\r\nm4wU6Qfkulw9KV8TAjybeMuzQcgQEmoVlIaO7o+QIi3cqutlpE9TNeSIeUJN\r\nf8BzWCe8Uyn7lR6dNIYdxoIE0Yx3Gw/4WP4thbsC1889qBYx727RUNawHSKh\r\nLc2VTs98pLCN9q4R75qcaXH0tgmUl9+mDwV4uXlI+0kJCYMsaBScekm1DjB4\r\nPDtLRvAhff7jbs/0il27AxDs7bfrM6kRZGqGoX8Ito41EcjEE9hzNv9cYAWH\r\nswpmYdFAruE4zOQkIpc8FsWx50ktwe5DlHOCCaX3YwtmsZr/L7mrE1cHSmZ3\r\neSjPh4PbaqXDin3DYid/bIIeM9hvbh/QALUZZ+llYWrvLJL5AmK5Zh/PxCce\r\ngRO1mZ+CF3l2msNJl10utclNRTXrcdwq9JGZsE6v7f4lniBQQqtR5K43nDi0\r\nGCGy0OqVRYdYlkWFEjgVKieHwQkQUQOhWPGOqczNxbcLT6RsMJj2/qDqVIey\r\nM1vUvuzYPMsqWI6ix1gyE4LPPPuXOh3RDQc5IngH8DcRpOZ9uzz1ZgPVFIdP\r\n/MO37IP6np82/gt7h//sq1bXZitgOwinQuk=\r\n=Ybke\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"7b81d5cc272a6f27f611b84b9de1dda03b43751c","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-7b81d5-l7pw92ab_1662450861294_0.5284946873456602","host":"s3://npm-registry-packages"}},"3.0.0-feature-04a7e1-l7pzof3g":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-04a7e1-l7pzof3g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-04a7e1-l7pzof3g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4df0214f4fa98ca640015614bfbb4cbcc9883cfd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-04a7e1-l7pzof3g.tgz","fileCount":1055,"integrity":"sha512-cNUmg7BssOV+OtRxOxjZNBB0l3AisKPu5p/YFFYCC0gx/B+hpDtzWMk20R2v6mz35/cd2LSV0cu7K9Wg7ZwDAA==","signatures":[{"sig":"MEUCIQCKibFMXMnIhaafdvcDqBX0g2muzy74212uSxcJU/1coQIgZKWkDGJFs4bgIavVy7nAe9v0VIvyCXq2nXX9lZyBHuI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFxNEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/CA/+NZI0J2uY/BRc3TarWZUS0sceG7XxbxuXH0mOqgYxgx6wHEtB\r\neK5+ZCyLuZuoKBq2JOplxKDjAYoA81n0rNsOwryNRcyWLtn4xmejU+pEaF2U\r\naegcUrttmireDeMGO34vwtJ0U7FAEi+tqccj+BJV1x05dUvtoTgdyIWsnOxD\r\nnxF2jSx9dyIfe+Urya2Ur1AvvGUGNz8b/Prp96NZEe/Xhqk95N8ypXzw9vVi\r\nEJvIX5u7DYdtgu/Z5DnZMKaGXoqxATkstUe/jpciuBOP/yjQQVMTfhq8+tSt\r\nTkAE8Xo1ZyWnXLVcICQUIXwG5kgPbyykpjMBUn8+GVBdK7x77sL5nb58GB4D\r\nGzZDMOD5HGW9LWJ7jdG1OTklFhp570ER4ha9k2D258ZV+xQ4YCPNuw0aY3rX\r\nm3YArnAmFBeEhVVLJEzaIEcmZXXt6MWzogdVbFS5Q3R3sw8B6u/J81l/mxwA\r\n2aadKshDbqOyYt/axtJl8j4Anhlm5flfgVv2mbdN7DZ96zXInDZb55q//91T\r\nCgKaby9rv22ueb72KQ+gGr9SwhrtTAKui2iB1+YBbpoRj3XdCLwf4qW/gOY7\r\nI05dtodiu/cZcA2m/AWOjoGEF/MaxBm0KST0D0KUgYR8e01kbWIGvu/wyFHf\r\nzdaAhCt7Vw1VTCPvz7nZQ/+ihrFh6G1KrZI=\r\n=exHY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"04a7e10e2c9f8f1f4ee812a117d1f6b0f878bead","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-04a7e1-l7pzof3g_1662456644330_0.6327927059167795","host":"s3://npm-registry-packages"}},"3.0.0-feature-f02eeb-l7q025kx":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f02eeb-l7q025kx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f02eeb-l7q025kx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c64e896c15efecb75bf51ac75980d2d879885fe1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f02eeb-l7q025kx.tgz","fileCount":1055,"integrity":"sha512-q6AUs80W6KiC+Zl+RLlqIqFt3UoH0Y9j+RAIgL+TZnU2ezafA3J7m4n8liqobeN7cIqBZ2bsZymtrh9GjuV/QQ==","signatures":[{"sig":"MEYCIQCpXJiBoLWdnF7sQByvHC/kQzPw5Z3E7hhoR3WSERxjWAIhALag+eygM+6f5JB4bfxnA+PrdWdnwvEirlGakCtiq86l","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1792302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFxWsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKvw//eSL9xPC7On3BheUlSCjwJDB++qoAzuzrpykEW3StSaI5TtQG\r\n6eNFNt3Z2ccYSWQLNd+pzBreCdwYlCZzdk/jIAvt+KcSihMbCzd8o1wDee0d\r\n78vk+rSelCz2JBTSFJu2x/aSXKQRbpQ8J+ZRZpBy+xOd847Bc8SyUwS05NTE\r\nwuDaozvjVdh/1P2xZkuPIp90JgNGuwM0/ssekJlPyCBDUVRTS641WhnEvlf4\r\n6JjjUT6WmN+ozsR0qItuS4XixrIiGk0o3ZEWr0PZL53ba15d4MRozmG80MLL\r\n59hG7A6u+xsBQ0D5ftPay4qF7ShqoqikJM0Xije0ZqabR2QGgX6RmIaKYp3P\r\n/fnZbRtaA85aMeQmoxGSiSo95wicEEC4Ce951tWet04sAziwj0dHNXlrgy+O\r\n3Ma95j4CXNBiNo5C+Gw6LGKjCr0gOgC28uQKbntPeh1rQgPOPOLWM4YcKknc\r\nEeB7oI5y0sddiIcVpyA3RshnaPbgDhTSMkE7Twrim8FDxBpQRzWc+TBP8T+V\r\n410KLsI+2SEZdNC/8pwq11YyJ+LpNhUQPrm7gFKbgNUGv7WfB+5QnAgAhxIe\r\n42+6MiCFJ1xtdvfQgMGtZwjF0pI9fYZ9LhbKruAz++/VLLqyAcyCe15wTt5e\r\nkJPI2sBZ7L1ZNk1S0IKaXzAA+yialTRK43I=\r\n=Agbk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f02eeb582a6431e372a19d180d03814488a032c7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f02eeb-l7q025kx_1662457260139_0.505631166724406","host":"s3://npm-registry-packages"}},"3.0.0-feature-f48921-l7rczhbu":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f48921-l7rczhbu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f48921-l7rczhbu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"92b10dde39ca0d6124c1a91c77692c4a1331157e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f48921-l7rczhbu.tgz","fileCount":1055,"integrity":"sha512-bMZ9zAYi+YaeQAirbYurN96gBlNR7luUZkZiCbZpHzamMdP4nuTqpJ1egSbd2xlSPdKqgDNogXeMr4gzNFRWuQ==","signatures":[{"sig":"MEQCIEPOZOBFDRWNlSMVD9xArl6ZLD6Yi53sFrbd/tdBmAjNAiAnjaYjmkOVn9M022M6U98DoGjsJgrYuHqoXht1UQzNjg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1794350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGFbgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqFBAAnY3BPdTOcFvYnVkWtUF50NcbWJpH75X5eg1GmaXq4/Cg+6s/\r\nKZG+68VYvNqkF+LQ/V38JP1fEMkjGydxO4F+L/z65gZPj5IAFVtPlOc+gVw+\r\nugOF3WHc8tEqjhrT4G7yJ1seRvum70EpjmP3eoGpy41tdscY9ppMfSno/Yus\r\n/dBrgySWoKusqZGusqS9ewcQhu2F0K4Q3D87rgFtY6q5PslNGwYCBJho6gA7\r\nxJE2SUi7AsupeGInSQrIp4woP4H90GEUFA1FbbJoRvwib0hCvW/tZOhdufMP\r\nTAJmFs1IWYt4xMluR8hNVCGOWNuLyetXN4RVoJIiLRuLQtP4H08er71aRkO2\r\nr5+xB6qeIO2hqHTNDtXOH4b7Cf0VnNL1F+RHUCzsGFg+Qlac2+V/62RRJp7I\r\nr2QlmwUlNXpigcqPOjBL7y7k46K69dnNcEW0Ws7MlZIRJ64Ep9X6naOd6ntm\r\nc+TvKTmJN7gd1Wh98ZzdGvO3dzP9cPPVPBOJsl5Zv9gCn0mqIdwpUxj86MaQ\r\nlSuAF5FXq58kDgCKc+3caqyH+zutmjUZFTxpcI8pwOwTIUGU+5qILsKCzkFn\r\nIzA9bbhhh/fm9vt8ta6csTS2wE0ZLJGudT4DiKfpDK78zi8dUv3jo6/X6jJ+\r\nzFgjpPonGRv3YirIpAXdcRDJujTtH9QQuxI=\r\n=+mjM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f48921b71b3bdcd2f18f642ebf41bd1a1a752f20","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f48921-l7rczhbu_1662539488223_0.8327693897361328","host":"s3://npm-registry-packages"}},"3.0.0-feature-3c9cb8-l7rdctvd":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-3c9cb8-l7rdctvd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-3c9cb8-l7rdctvd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f3f949d2551720e656a4597edb4d8a835b0a3927","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-3c9cb8-l7rdctvd.tgz","fileCount":1055,"integrity":"sha512-Osx0zrn3LyjMEmHBXcMmjVx2+3692DmfkSzcGM/0Y96qGCI4LlSc8i1MbPosZKl0y6SOzlpLFs3awraOTP1B4A==","signatures":[{"sig":"MEUCICZDbD1y2rgZo6dgqKMj6/slIlphL+KWmSGwPZkOZhl+AiEAvqP2CovAVVfmD+2HHmshnqfni8owTECHOafe2uEW6tI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1794238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGFkhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9eA/8DaARb28q6KUWqpd52jMlSx9jGbCcyfImuG1w30nRGyECo8hq\r\nMQTavmpeaXSqo3ToLuMKRnh1s1X51Cs4jQNQF0Bh6C8GU1iTvggRK0Fumrd7\r\nEd9HmYubb95HB8DWDnts1rulOhHmq8THdHDvuI+d5Irlrbf3+7XvXrMFfpnK\r\nmLOWa9MOG+Dnm7wrftHIVVZRO1delx0IAcRtqNKXTK4kbrcxL8fCPhovefBE\r\n39aCzkGGoEGX3ZGFnACnKDztm8f+ywXrhcOtyUGKGASL5ZEHLZ8KIecdmL4n\r\nR45TY3CU3HhigaVRKOq+dTPpqimJ6bE2Y8YwAn6xHt91e73Wc/wHTTSoZ/ny\r\nyJfxR4ND4lshKF0lTydg/IIDF7sbEaHzj6oxgKnEwmXJUSWUd3OQWxx+nYA9\r\njK1Pt0vTn527mKFaKSl+bqykuVxwOPV+0XNPRBHL52d9AFbukHybDRN5dSQ9\r\n8Rp88mDy47MkgyW2WBuq/gSTuAl0V3nlDMuy1XO7kMqigymMHGkEeLwmyyQs\r\nkFj7+YopB3H79x0NtNN5yfdIi1jX7KEAWeKUm3uZxvL7DGXaQzFcrqk9F6cS\r\nVj5X3Ejvv3DxXfqaWkT+WqSCFoaUsyXLKx292FT3CT4LC6MsVw5QLNyFQdAS\r\njuzwPL/dyeK27Yb4ESKRdPWDrIOuh7mJvAw=\r\n=kc+z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3c9cb8f9944a0b93054146303e3ff2a368fbe329","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-3c9cb8-l7rdctvd_1662540064835_0.4715349332139882","host":"s3://npm-registry-packages"}},"3.0.0-feature-3f5053-l7rfd8p3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-3f5053-l7rfd8p3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-3f5053-l7rfd8p3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9413d0d12d8c2a0feded9f153395e05e8dbdad6c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-3f5053-l7rfd8p3.tgz","fileCount":1055,"integrity":"sha512-Y7Vp7VP2a2ZnGPk+dqAEFxDbRKZM774on44T8+nkzb/qsNMVMzu5rvJW8SmCul0r1h+NK7A3uS2oHdt7qRJ0bg==","signatures":[{"sig":"MEQCIA+3XMbiy59kz4ElYAxsv98y1Go4jwjT0zsnF4gN2uujAiAENp5JiJUycnTC+8Z7Au2BfwfX8sb7BEQC5Zlp1LnjyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1794149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGGZsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE4w/+M+0MFjATjeK5pxP2pnQDQa23kmfWcTnVe0gFPWjFnxV0Me37\r\nkBkjEz8OOLeKTloc6j9lUihB11in2ZHT2VKLmZHb+ZJMWHH0KdX7Ypv8UhCF\r\nhWm06hjzrdACzmpg8uXY6hjodxf8HLH7wxUwSTiyiCRRhXVvDs9CnPZkK7fk\r\nN3/2eMZxRn1rxdbFLhxtFBrQgnJMadm4ZLzGEyw9ywkzG+RCjey0H9f2M1/s\r\nHOG0VDi1fTC051Fb85+y08yvMH2BbYHPE8e7doL42C4ZNSri34z+4dJkwzz8\r\nr8YxH7KBnUMATez1mobe0SsxAIPbKdXun7ot7ZX5Lz8zY+IUdTM11TkiEe0f\r\ngqqAAYsPxPVGo5xtfreJ4zQXEc9SJn3q5OXEpIeVkt9quuY2/Prs2SYXpUDi\r\nlk1UiwnTIpz18AArJKICzKN+PO081ucR4/W/goahNxHAaG5hgpfiHbFZF1Wa\r\n2td0p3FFREP8dixzG28xl1l4RrXQjBw3sMCIcRWhsRrjDC7mgdVjqbqvDGRu\r\nCCzkn8qr7YZ5f4D2PaxFYOzRG4UQIVRk4CaZjniNGOcVqdLnpFgcDh5pnfKI\r\nNm5IrbR86b1HgQy1ffVsm5ulyFUFSSzo0ttrQnyFC80RLHYMTphKxaFcVKW/\r\nUSTR0vLOxHHnlBuHJm5ub+UyAunSoi9Hg74=\r\n=006E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3f5053765e70677278863fe68318ddd3e0d348ea","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-3f5053-l7rfd8p3_1662543468574_0.9873162821522306","host":"s3://npm-registry-packages"}},"3.0.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0dfb651e88cf636eda9fc8c22b26e4e4959748a4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-alpha.9.tgz","fileCount":1055,"integrity":"sha512-vqmoDxVkYJPB7ZqKJtDBy6BDSCmEy+LK17Vt8rwJPlzgmNpDCHaxrhBFEzf89sDGk9j4RFdJINALm1VlZfLl8A==","signatures":[{"sig":"MEUCIAxWaDCRU8pAEBfMBvE6E9N8RBSvQ3k0BumB2MGOg1B0AiEAyCFm/ThC42/lxf15EVAJwhJEUmuGMPXm+pMzC0GVFtI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGbU3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYqxAAnVyNaQ8l/DfChV1QH/2fqw042+jXK1Zp+pgF3cu7b2IHzbnl\r\nxlLLZA8NEY5MO5XgwWAQlKvZK9bH9Hwbzan5FiR8nuk0b9nu9NO7kaWEd7oL\r\n8ZO8L7lgXkV0R3tHnc9fSGFT20pRlmfOIIEd0FRSWgojf0DReA5OcApLguLq\r\nbxu0vN6GdW9HSWLKvbBFnQMpiOT7fSC2LxAhbp6zVIJtYKbtiDZfzOKhhiZy\r\nBTdBj8P6MH7voSZwFfeLT0N8K8tBVZ3WaEzw1RZRKlHGyTc+0RvqUhk118CE\r\nr4LrDGgJHm+xH4vWoHMHglwzZ5j56eDhpBUihuEoDynkUNUBSWZGyMB9v12J\r\nNrNNumM1zjrxpEtOJN6OcmE3H2VhzKkr5+WeTT/Rmu7kCepHfavnzZNfA7DB\r\nuWY3/Ehpa8xXz2H/zSFN/DxezJhUoDAHTCxcyp6M8IJEFLEsWJLD55W9qCw7\r\neiEni/BWK/an74NwrokSgGTqTLdmk0Hu2mYuYMWK4Rpkmlb3uq01nFR/shAm\r\nQ5rGAtAxHY4ApUeNkoH/o7UZ0oH5WCNVwuypSTkfxO9/RX4jNJMBbtnZa1T/\r\njImRuzoikWwyiebDF3R7W4TWGEnqZv18rxA5spDXUHONLWR68i7wySXttGnz\r\nlwMh37nt1BRSYIHZC+fAk4zrQPSqtV0wQSo=\r\n=viua\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e75e769f746f69141e958cd121ae2373b905881b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-alpha.9_1662629175701_0.042221003619046016","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6b8f23692bbc5a14753b7d4733a399f85d5c88d9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0.tgz","fileCount":1055,"integrity":"sha512-W9vCEfz8lKTbJCEHIqJZ4sWyCWmvsHwGsOomDedtBp04dILxz0LyHAzmxYWP9H6F70znOcPozWXDuOx3zsddTg==","signatures":[{"sig":"MEUCIBFC79EkK/WSY9MSBzADTyGhvUUis2ZdjVgfwFMyna0aAiEAoG1m7EN6Dq9iFpwkiGKzbkPhofZnxyog0sTQos240bQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGcMCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkvxAAgxGP0yKhdLnY3z+nVJyRDe9VbIQCFWfQPA1UUdYy3WceK1Ly\r\nBiNL7kdx5RDZf6BhNU95o5nkoeeSKP+9lr+aAMclcyu6JYkV7kxEXgOoZ+Y6\r\nIfGFg+AHekzcXFap2yTJpaLuojP2VDm04HCbgI5KaBI2yPac1G9kerqNZE/W\r\nFIx0T+LC4mxRecZbmTZWd5XJXohgfSdGIbDobJr/Ju3ERP2nd0ZfMu2bBQKX\r\n6n0+WxRXhYmWiammMM4/er85auJ0U0rcgjhuR8zmgKudJsNFz+1JtvxEorn6\r\nLRfqSX+/U8/e3nRRh+9ASBXB++CmgDyiE2k8g2SHFaE82KUFqJ0cMr1UJu+i\r\nRFUSUgkWjxhGXBptc6+tWJl4vQaPvR4G0eOliKYB2ZD7eEbXZbhAmYcL2k1C\r\nRiEj9v52q69hTYgUcFEZKNQbZGsmf6+pvHiMFtVWuMYLhgipu0+Do61fSNUY\r\nmNSu1UktdNQ57JQtruOLHwyJKa8GthRp1y7aBiC2eOW0P9WlGM7C2puhN+As\r\nLCjEC0RJIJ4X4CxI6fETJ7sUl2fD1BNA4PT5FxOHLAndtBaRgnD7y//LXmRg\r\nPVP66Nt2In8F3d9ke5L0IbJnTHOfJlZi/euVSmllX7AMdsppPyCCcNVtH994\r\nn5UXxDa8C9hr2IKv0ZjQPKyEOyJYsCb98M0=\r\n=s3gg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"a8ba4894e94d097c1ef1eff914681830583e2689","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0_1662632705931_0.5463117500365493","host":"s3://npm-registry-packages"}},"3.0.0-feature-f76f9b-l7swo4en":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-feature-f76f9b-l7swo4en","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-feature-f76f9b-l7swo4en","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5356dba39da56d497c306506f362d605a244960c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-feature-f76f9b-l7swo4en.tgz","fileCount":1060,"integrity":"sha512-Wvx9HjmsvJ0gulLpseC9S+SlUzaxfWrGjcesQhyUDh7+EtsYe7fUU6L4/OBvY5sowcIxzJ/+OM8BJy/Q1jsTog==","signatures":[{"sig":"MEYCIQC0mIAWRjrabYsLUDiL8gjqsrBxRFYwpoSgoRYm1D8edgIhANfBV+/j5MEvL6eCZ0OLR+GPq58p7T3PA/ZpWsY3Gg+A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1771844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGcQIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqy+A/+MekMJp+OuDwuyCufDPcKQYUC0ZGqsfwwJlE1pS2uXiZo+I0o\r\nWqrlBL4xFSAPzCBNINoo6HwUK0QN5QN2+pw9vxbCnjr8GRmi6iEzM4gsdm0h\r\n/EZEU3ZmwtpPa+Xmc5rgKhI9Xb0z2ndegcY8VmkfCayMjnsskWWQb+3MBNo5\r\nJ8oDpHnYWhEqOL/69eI/SebIqQG3Mdh943ySNsxMvy3HjMfrTOSMc2SIc9Lt\r\nKDlpgTZa6dnna51GZ5axLrOrcTY1JRztAIQ3ymu4eWu/82rhUFOFH9/+q3mM\r\nRbm5TIxxNpnYnshD+SHnUXuhmx8a8ONJodJGyn3g7uP+gdfrG+6J7nsvTgVF\r\noq6djp90/0f9aBbPw35ZgR6lWIQsHeRR5T5GB8uL7hFpS3ioJBMpBEF6ajLD\r\n6pgdR9rn57R53hqxaG8K5MGPS+fS7TUjhhYQzcmbQ78iE1WU3+7+X/k3B0iL\r\nNJPEtuMqR2RlD2Js0w/kiu3dEvMmcAIi5sBWPn6xvqtXz/rGnzTmDLw51idX\r\nAta4/E9nS1U+GJGeioYKMC87h4uDtQmQUMNxUEZAPh7MWiwFdaHfEARK0lL0\r\ndpohqJg750vn+YL0eV2JAOop7THTLtN9b0LsmrSQU/oayFsUOMnkBPU0+yKZ\r\nerkJd93AvmwRc37BTPbLLrdac1y56XCyOGA=\r\n=RfiW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f76f9b7ced1167edb7f5ab1c5a163d0ef5758d89","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-feature-f76f9b-l7swo4en_1662632968195_0.8839210485195221","host":"s3://npm-registry-packages"}},"3.1.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"10879f58aa865a1d977a9e66ecc68a23bc5b22ab","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.1.tgz","fileCount":1055,"integrity":"sha512-LoBqgawKZZYjyQrgAL+AckHy4+c3IAnXoulYa0RPVOF6Ql1VO6LPKqahyZ08P3g+PGZ9bRz8TrKamVvopr7ETg==","signatures":[{"sig":"MEUCICu6CrI3iVGyqkVwfDfD8/mT/1N+DyJJ4xBfDSUzS6lxAiEAlrviPLso9Awngijm3ERuXsCQvly3ZpYgQyWEynDAbqI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1788632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGcXZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohEg//aSzpy+wkN5zeaX4U529ArTNNK52vSYU6b1NnvUA5y9p8e8+c\r\n1HtY4/CkUfyWakD4ZLnbiE3nuoa2L7X7oBivIDP5a5mmFvjkaHC1XWcgLIrH\r\nNOwKpkAsaJoYYBkziO3YW37joN9RQ/y0ykg/C/nkQ0RmmoiLRn2wAMysUVMr\r\nL7jWaz8kHh91QwbFeRpxwuK0LHO+gy4fyJUTTpsvPN4QhWGySnrjG0J2rwwn\r\n/p+gOWXE+Qm7qsOey3xInDlhwrSiKmRpcliXg10NskdCnsEjBZVciauPFQ4Z\r\nODoCg8kKKJ/rq5sfWLo8HmqVILlpSDgxxULggJ/AXW4CdJjly3TrOK866Soh\r\nZy7IeppgAw6fm7N6Mdl0h7MVmHDQLyfhLw1T1Htrsa07NwnJpB9XU8UAPIDT\r\nsK6aGiGhW9qdAM/DVcfndcr1TfotK41Pui72QTwB9b2/HHVf/8eBXybceT7m\r\nnUJ5td2fKBB4rQZaep4vN4Hkxxm1/vmDgsMlJku8fpgsVVl4ipk0WdG2hviL\r\nnAD/QIk7IY4w+68SqJXb0PHJCiRgcIAvdH8zT8qu1gR/pIB25JvKQAeJu5HJ\r\nayZmrODTSj+oxZf1rXqk9oC9ETnRr69t08qJOybb+NEIcSzOTwKYi0ouhK3a\r\n7U4Dp7ZkDCipS8rFM1q86sCSF1UEmd2r3Hw=\r\n=IKbX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2563fb5621ad916810b07aa0cb4f67640e766bf7","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.1_1662633433037_0.8454049520188587","host":"s3://npm-registry-packages"}},"3.1.0-feature-5ebd9a-l7sx9wkl":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-5ebd9a-l7sx9wkl","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-5ebd9a-l7sx9wkl","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c92d14875e9493ba659d27d313ccd86e143070be","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-5ebd9a-l7sx9wkl.tgz","fileCount":1059,"integrity":"sha512-NSDTi6hqG+8WgbwYSvhoTlqqzJkj0RwjI5/DSmq1CdbedJg6vF6hFXBSmEr4vlJSwHE4tjH9S4CfflBZXNcghw==","signatures":[{"sig":"MEYCIQCJbz95ubkUFOd60fWZp62JqfNQFOkbv3OPdnVdWco1yQIhAJGZWD+NGVcwRY+WNdFdO6S4f+9fmAAZRSow9Jjm3yKF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGcgXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6GQ/8C5xXsNcTZsg8/IhFe24tXcWpV50FopJsTr47IObz4G+jvs5Z\r\ncJcobzzPSB8pLpocB+CTjOCEPpN+0WaW8p5q+7RzG42V9gCFneKQPsiYo+2U\r\n4UNrpCgD43Ci2n66xI2EiQpRE6so6FVLlcingL1ZyOrC9f/xawz4fysghdWy\r\ng9M/+MRQTjPptwOKpUEHTLSNoyU7qqL2KbsJrsYpyTYCvIfOG7Tr7kYKdd3S\r\nwI4m4+lZo9oRv5DrxzyY/iuMJDGLVdjIoLSzCKrC3agxLc18K1HSrzfOL8c7\r\nwnd8EVdd5eaP3PRLZRHkoWFRIHF5LI/d0nYpf9inGL5Jr+mZpeFjwrc/Gi4D\r\n8aDGOsPrsIpQez8seZg7bGJKPWNrKRqLVLfdQgr4WhHXIb779v5CF/62aapG\r\ngI+hIEIMLfVKdqnsEr18iLEdbxluc9suMhu4QqkGhs5+rUsvf1Haz9X7J2F7\r\nEB8fUAoNPwF7yM5u2lVL3ND7Zjyn9fswHS5Dytzxpppg4+eGayqpyydGR6Yj\r\nMnXyOIY25v1iPx8XZaMG8ygnSgqVtXUI1h1SNcJWezE48EVw+lz5plwBFIDz\r\nt7Y9BsdaynDmGtKLvafOUep4Jc7JyQnCatxxMNYfc8nJJqMU1cp+k7b7Mu0D\r\nd68uK8iwl1FZzsvNzLs10RyuGvjIowd1TRE=\r\n=A63T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5ebd9a7633e82832e72201cadc200a39af21eda1","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"14.0.0-beta.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-5ebd9a-l7sx9wkl_1662634007231_0.710551445202044","host":"s3://npm-registry-packages"}},"3.1.0-feature-e6479b-l7t5y4xx":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-e6479b-l7t5y4xx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-e6479b-l7t5y4xx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f574a7f63ed0388206559b7cf95ac76e20a53172","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-e6479b-l7t5y4xx.tgz","fileCount":1055,"integrity":"sha512-NX1A8nlCUzUnkKGZX1vhLNgrfbq2poJqlo5qsj2Ln0i3F6zLAY124RGCPyE+FUny9cHto/kQ+4NjrjOYfTXGiQ==","signatures":[{"sig":"MEYCIQChPs8u2+7EdwbilHXI/kGPurn0IJGRxfmHBpuHpAIVBgIhAKXUI/756Y83NBa/TyT/kUzBYY8VcaKaTEvt5jTWXpM9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1796526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGgENACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroOQ//XSzEApf9d1JqtFY+H5x+onYEkEPKdj6q/Lhz5Sh/weiZAbbA\r\nAA8uWXwQhYxwxyIHfUsAX9VgSuQzL8ug2fnxGCX5Av7yzl5q/9Xf6jDsuWrm\r\nwxoa8ldZlRns63IF3gJcSbMDdPxj9A4c59kdu5BVht1gqz9XUIlmsfAei3L+\r\n2AAWgDIJ67vgtSdWOcFH3IG3ZaWUt+xYDjPqUaKXQn82LXI6xABw2LRA96G9\r\n3VTSpqF0QxQbusidy44tGISomDzHwVPCayWyN1sTP5wAD+5XqBtTz6xHvcoe\r\nps0wEysStvl4jRboJ0iW7i3b/DSJL+azumjNOo26ONsbQJiTINUX07VH7gSU\r\nUXRof0GpTYA5DpS6L5RMjEW+k4Fc6/65DvNCDTsothHRihRNHSb+cUJ02TN1\r\nCfRKJ/82Qp8tVe5Biqpu05Do19R4eIuWwIAFQmhyWbVHpX1KzOT1S28VnRJx\r\nrD9sVlza1hNeqxoTGbuFcriFw7G1d63QLMEdlQDW8gPO3MRBatXgjtmjTWRt\r\nx1nJ0u7PBdqm2ktuFIn00/ASZTlYS0biZIPx5I+pfTf4D/JNUaiiUimaIPqs\r\n+aA2aN7b8E8ZOyLFi+BoUdVK31hAFHrcMmh5m2IZ6icGgS9ONzbyXJgckiGg\r\nD7VxKRtYH5OnZMx9f5RgT8SQanBujmgiYsY=\r\n=Uni6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e6479b803fb0c0d8e628129ffda45ce62e3daeaa","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-e6479b-l7t5y4xx_1662648589714_0.7898598885202042","host":"s3://npm-registry-packages"}},"3.1.0-feature-6228ae-l7t7fac7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-6228ae-l7t7fac7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-6228ae-l7t7fac7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"afd33ad2f84b051115e5904cb52c92b1947b8949","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-6228ae-l7t7fac7.tgz","fileCount":1056,"integrity":"sha512-K9Hi+reidiFCZAQznrZ0jS22nppFHecZxdlzINpwiLdPvvzgi0Nxj5tavCO6pd+73YP7n/gp49cOoYA8yOgxqw==","signatures":[{"sig":"MEYCIQCf69pxT4Go5LM7n4mN5lH4Z7AMuCpXe1YvVcU6GoWemgIhAPJ77XWhqk7CDiQMLp1LRKAhhoDo7z9ahYqvhextx87p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGgpzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoj2A/9H3k75OJzZqDw+nMnMAOeuFkcsDkTRROYNICFZbEoD1fCb47L\r\nfiUF+Bz7wf0PhUhaUiPCmkx2ViZCXW32sYWxBvDZ9Z3WL0gl3TRgsvy2D79h\r\nW7ATSU1BVtNwSK32ypSZXYjHZANoRxDAL+4KnUzTD5DRSZPdTqTcZrjV6tFq\r\nz6XpKQTr9OMHgbeU/AL6mfvvjlnKXvOSmpS/9c+FQyOt3ohXJZOviEdj9o+B\r\nme80q4Nwed4QeHW7tNXUMvJYbGArQSwl0cxN1V01OHk4pJNC2v5mDsz0MbtD\r\niC4YZDZ83/9q0u2ps79aWwmWdzKubQoBeYg6EMbaO2J2cnOpbJfmFj36jLWd\r\nKPDYPr1SOjBunmYJBMRR38lj8b1cAlOhDpFoi+ALNnNS1TNPlgSLjluy8Nao\r\nls+W+ZHcYXvMdMjGJZUtRhyhCLDNZ9YrbNHLBZHTUz794Ih2w35mLiQ1DK8z\r\nXx2X50xCQJRs5h96RsjE5LAZ5h4WWrv2/NDTZm++sCyA15WoTzZDerKaBD3g\r\n8xgZHNn8+hLJEsb/C+yAvPWgmZ2cNhPT6q8+G2RLY4OaHgniddHb1SuE/xBN\r\nVX2khgkXGc+hZuVigVbSJAaLh21njnNQlV6wCHLKAo2nN/iE3fuCXM/hn+N4\r\nHchGGOdxj2FBAjq0mzec6IcqlQb4lgmVVhg=\r\n=ORBs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6228ae318f8dd87faf0f70a67887a4b24f694ce5","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-6228ae-l7t7fac7_1662650994804_0.9458265479595886","host":"s3://npm-registry-packages"}},"3.1.0-feature-5c3a96-l7udpjk4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-5c3a96-l7udpjk4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-5c3a96-l7udpjk4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bdedc19aadd01afcb4122cd652e2f6c65a8813b0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-5c3a96-l7udpjk4.tgz","fileCount":1056,"integrity":"sha512-Zv+sxqBtsttpXW2ip5BhGrOPuKwjvcpEhvvus5WybAA80EwUP0eqx2srnacpTKTLbVd7p5LTK0eDYd1e+CA4Lw==","signatures":[{"sig":"MEQCIB06MtXBzkwPhUeyd4VC2f4Yxw4KtyN7PuVkpoeHAombAiBVQMVj6NxUe9pQpiTrB2UjWIiEanTlwXmSJhUrHDDblQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGx/fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4Ww/+Oqiq0LdTDEn2V77g/W3vE2oSyKyKXflPxsSXc6LSfwf9WzKl\r\nLtZPeGu06aLSrdoc0j1+IxaF//UdRABa6Fr/8XQNg1pjtA3EcT/ZzrYFSjqi\r\nGpmc65YTwn9jstjj4/8pDfz9IX8VIXkgnEy44ekTspDJqofr5b5w1fpmYfTb\r\nS6QJaMoDuCM2kA6Txg9d6vZTZBx2hJaOlnVreI7vrlVF6GOEg6EbjK3IXUKX\r\nfOKKbN1kl09CSunyJCDYf+gxE3x5Ot7f+sNmjdvOGC3KxgY+KM8n3klW++IR\r\nYlusHcBFqI1i3260vnLCalc1Au+n2nn5COilk0S00tv6GGa0F/OXKEIV+amv\r\nrb78+OZvpNUs+DLvHH7aLJ8jgMJkvrznlEYRxgB66TdAhU+4HbQOAEYWCjOm\r\n0ewEmmQS6zlM2xRObJ30jw2RLvjhomiL0hi9HNqiO5yOF76fC7P/J5HjZfMm\r\nhRxcKJ7Ad9jo7o5bt1sq2wn7mJ8yfMPJJTnqOV2rNobjq9TZQ1NioxrXOT3Y\r\nmMdfSBP47wEBJhsZGqoIFaNIKFDOtQm3ngv14/F/j+RLOBi3ifUF+pkIj8D0\r\nTViiqYWdrcuNp2S79fjvYDdzqQ3drP/2/1ZRL+JpDCsmFnGrXLCwnHKQrgi/\r\n+Osq2UTfD7edHl2U3oQBGJ4ARx14F4WSGAA=\r\n=9Etn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5c3a962915d021112c4d5e28a9985932875acca0","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-5c3a96-l7udpjk4_1662722014773_0.1522432815824506","host":"s3://npm-registry-packages"}},"3.1.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"95c40bae8226ce5831dd5048e3fdbb45e3cd87f0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.2.tgz","fileCount":1056,"integrity":"sha512-4szbWZMuoOuoFYBfNvZGseflakXqGsc14Dhv6xB6qrEuCbEiOhlihKi1vRcAt9CWDvGj23F4xmPN3u9sWO1kSw==","signatures":[{"sig":"MEQCIHv17uLRlEQR0aAHOXZgFsTnyiuGry2jJhrOz3xEUlnhAiAR1WG1rI27MypLjk2KZVsJk9+lAxS40rssF1RrXGnxLQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGya2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoqsw/+Lb11nBkXkn2DfCsfCI6goaIfKgU1o0VXEPbBa24lfQmXutmp\r\nVP6AjGNQNunvn5mmJEoqOqHlmnvcmKMOsFylJpWlpp5OxdbYlGRVEkv+Xx0o\r\nrlxZBqo1+WvnP7W5WT5/CbRE+2m/qihDTRKSp33zQIHTncMikg68kXfScfo0\r\nYi0VjTc6PTDLNL+VJ5T8T0vZqoOwdsAWcxv7rhCtYtQfPlizeJi/YfcqLKal\r\nmFXxx9R1W2DeAGk7DTS0d9zBKs8SvlFhxbDfspQbcHrh+j/Fh+xUdibna1JJ\r\n90932fmLVy+6vbuftXOAcOcTs9Vvcbh/0/kVQlLiCIPNiLH/WihDbJHjJwhB\r\nzJIiy0kbmmy24B51Ozde3am7Sk/BEpuYSp1JVYralOPC5L2Xswvo0y/xkBNi\r\nw3+9dZK2tOGVKH1Drj5i21LILLlQXIHt/hm9oNjz+iU9u5t9jSN7n44o0xes\r\nCKemERvCBro5IsZJffTI7YOetaVOOWAgRQzGrpxyCGavfIevXnbAPkL6gN6Y\r\nnbnN0rdmvq9vRLgNe5C7Sk+1eUa5blRWZW7yY1/s1jwxSnFlqkbcSHBTiHaw\r\nCxUgjNYfnH96AZsoq5lgjt/hh+WCA/lzyIqHrqG6I+FAER6og0roM29YiJso\r\nLY8HfDJkpYuxx59tXbCNeV8ZvyFkwv4G4pQ=\r\n=X0Cv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"13758b8378e14142a7d4e2841ef7dc01c440ceb6","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.2_1662723766027_0.06363424435546317","host":"s3://npm-registry-packages"}},"3.1.0-feature-cc8a96-l7ym6l9h":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-cc8a96-l7ym6l9h","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-cc8a96-l7ym6l9h","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"99e7b417009dafc1905886ad01f4f31aade50803","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-cc8a96-l7ym6l9h.tgz","fileCount":1056,"integrity":"sha512-fUAw+mfofKBfCM+5aoBvyvSKn4V1PzBEVCyGdPWG2TcX4k3CzyxpY5irQ1Urp9bxUp6SQDb/VGPC/JGSrmngGQ==","signatures":[{"sig":"MEUCIQChN0yk+KpDkFPovpwKm9BccPelC11Xa1ehvHhLSm/MlgIgRop+n3cncpCyeHw7KhIOldITNQEmLCA1IyGcbADCRrE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHwg9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmph3Q//WrQrU7FTvzXZ8X/3Ty3dh1tzyWb640K7qk9UyObMRFgcOsoH\r\nhQ/MKXC9ivNtO5Zq/SAoczZpORMbhn+mlK9m0o2lDLwfwPxrWHa9mpW0fuxb\r\njvpBQFyc2u47tqw+vzc9vEguHqy3CnIFrG11CJeswmEkgZ4X2coXOpt7BDKL\r\nxNQNqjgk0XvZqSFYSFn1M6jspkopUpjYhEB6u/7nOvZ5Ftli8uHjJ3CUqp/G\r\nhdwaxvDiHASzmjWYyEPokQCF0l/fa0UtCpCIxDSti1SXRQBrN0ErpgnOxRCR\r\n3e/pH++Atqxovjr4PMQFF3XhR9XUqHJlGJWgWdGFNGQ88TKziVU7u+bnaezK\r\nSBC3y+/2Tni4qSOLOcsXInNAdReU6eTRoGHAmj3nYvsDUYITwlBbP+1Om8tv\r\nQX7OXKToRZNFjaKfIyX7+x+jMgaS7shKmumTtXsc8v0bzXwnDbpFuR2y1dD9\r\nJZXgU3G2rzEDGVTxLXUfPuCJb+V7Pl22KKaFMR/4T/4e26jXuLkOSDxJPagU\r\nUUPjibZCNum6kwmqAFvzPvQ5yPhUz4xvvULKFxJVqlQ/3od/r6IHi9UD+JDC\r\np/I/rOOP9eS0Fe06RPmHNcjDfrUYg4xYe40dUnGj7kJUg7+1964HjefxPwo4\r\nJnJgCszCYzuYk+AVesuEYM46hBQu568+p3M=\r\n=AxZL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cc8a96ec0610ef396e798df2f7547a15a7847a35","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-cc8a96-l7ym6l9h_1662978108887_0.7592272868406245","host":"s3://npm-registry-packages"}},"3.1.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9fea7c2a03d02182cb35d8f94851ecff945196dc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.3.tgz","fileCount":1056,"integrity":"sha512-MKzQZBIMoE4XWB5YyVVzm10ICzAkLMLKPM6SaodW8+1pgijifszN9v899AA4gAEvPDxz+6Ew5og0rWGfHpedCg==","signatures":[{"sig":"MEUCIDnJimi8kA9JcEam593QtRmwn9XiQErEPi0nkAXFXYhKAiEA5xRmehXVBvLePszDngX8BdpA2OXYPzHJud1KhAZdfBc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIc/WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4nA/8DN2K8BBxOaVBi6unykXYNR6b3FsEViVXv5PPaFRoxMbL4KSG\r\niGglyZGJ9xOjR0VSaM7KpkHHOG7/C8Pryi+hLXiR3uClb4w8Sg5gDpCIGNQ2\r\nALGUZ4NDWKQzS4nzHT4QUL+cCjMFbM5BVD6sjcxYOq7PmpOivCcYDr9essLn\r\n+ydhY/gdHhEavQqNX0gXCrEZwpFeDvta2m31CMeOOGQB/kVOr1pRHu/0hIq8\r\nVHZ+LcgHLF5EW29K9xnH/1X29aSixgBdLkdAZaEnt8eNmXgKelyYXHqctzCJ\r\nWQEAuxy8tPN8Ob0i7tut9br1hmpMeR7ber15LvVMAs/8XFzGA8D1b5NMgj4h\r\npxvGd8yQBU/+QahsnhVviyCyoO/jGfqX2r4wym6TbALqnUJCSVaYTAib3DGH\r\nVNUug8Ok/4RKk25llcLJt4b/ibdFGm6Iex0cPp3wPuhwIgjaGT84Efd0RzHE\r\njX0hNtHyBpUZqVGSKed1PiDaACVM8Bu4lxRPdiRdNwseOBzl90QoHR0lZWcL\r\n5gSDAlkNo8SNGIz5alu2v5+yQmV5jvFyLMes5F/K7Joh3XxA69k4Zp/PWi95\r\nM6UBSdLsOa6WjJCFVxLA3lRHaX2AkrS/dzwNcsJc+0Pz9IUkdKs0TEbPHkI/\r\nbhdT7muzDLSQ2Rpo6rHsJpBIYHxF2LLasVw=\r\n=4Qqm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"67d8c9b0faf57a2be5a985a7b8e88212ad594105","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.3_1663160278525_0.33517310092928176","host":"s3://npm-registry-packages"}},"3.1.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a516649dce9540e6297e89acadb5f90d97264b04","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-beta.1.tgz","fileCount":1056,"integrity":"sha512-ucDuCoyoyxI0achRn+PfQljqdAGz+9ro9Px3Rfk+RELj9dhHBEQr8pJ/eY1rPOXPQAa15t3fZ7HOChj6/oIKrw==","signatures":[{"sig":"MEYCIQDFJforpAN4BRMrJWSXmJNteEHm2uuxQ8Iluf00VdJ3ZwIhAMCosMbTqnl7lk6U/wale3t94Pjj5y6gFq4nRaeY5qeJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjId+SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrwqw/9HPldpApDDNaCHyXNtEZPITMabQ480B2aTutv7t6Wci1S+x6E\r\nyqyJHzhd6g8q3NF2aLxrRxUg3a2iH/dkMEcFVjexBZcLlu2KoPO/IYiNH0Qn\r\n5sRiM51GFwwbedPmH/mGKwSAgoKbqh4wJ6HZUFcqqYdhLSXOaOGkm+zIMFcQ\r\naVi69G7T4uqHoa4POSUOYaBiV60l1VPv6iHWS2mdkp1Il+NFYJCXFbMESEta\r\nmOeDY07r/K1t+KUYVhw7ux+/Ruc3TEnEcKNOeEFF8/vu3E+ivXwSH4yioY4Q\r\nBZGxSCTg8YWBlquoQHYWHbHe5OHyyspDAQzQjJF1n8QUSoxnRi5tujL6hMTx\r\no3AQSwSBfM+QhvmfHgFc3QV0YbIxiWI7H/mQc7y0mTfdpOkm56qYKDL2UpgG\r\nYcTjlYnwwFQZHGasN+HgiWJBhE3YYrdV0FGvW+eUygZ/7vO2EV7l4UId/j7P\r\nJ8Mc7bk5QH8B2NfZ9LRlzniBTCoU1Z4vMyyleqZF9aR3QSAgBUzYyukOFRvw\r\njG5cdgqv84ZLQYryDvUGcmZpZB+ZFerHSQJXnThDMSr1wX8Tz7Rs7JsQXRrW\r\n9ulVByNetF/sdRIAj38r3KKYrHT+iRHm8Z9AgOisLziU5TgsHwjs8c8nHk4p\r\nUBhl290qgF4h/KIN7CP44slvKFPg+9LZ6b4=\r\n=gvQA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e34dcbd1598e7ea67bf23347a389feb327c3d82b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-beta.1_1663164306572_0.21300894315352426","host":"s3://npm-registry-packages"}},"3.1.0-feature-09fcbf-l8bl6rhy":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-09fcbf-l8bl6rhy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-09fcbf-l8bl6rhy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ddff4fd1eaf566b87edea4f342dec126afcb0da","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-09fcbf-l8bl6rhy.tgz","fileCount":1056,"integrity":"sha512-orDqs9mFgHt9kHMJC1D5K9vKW+hE29P68ISxJJEhyicDhwx9Y8D1XBpMqQz8IT5pgDEL1h1Bnb5LiaNtqPoERw==","signatures":[{"sig":"MEQCIC0QjQBYpfu2ol8v1WGmddY3OUyL/SbUyYN4U2OF064KAiAFEywKfPgWjeJ4B+XXPDXROVRPWVargma7teRKoBetVQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKwBPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5eg//cjGWLGuJwHEcTRwjxdfmfe7hCaFLM15fV3M1kztQHzKs4aBH\r\nJdRXqX2WTy6lYcW+ktKoNMumgz5VDQA2AwJ8Mv/kqGcODdbkPuAtTq0QNdyO\r\nKY1SYJ/62sLujtzGTHEGidl0WU6RsKkuqfhc4byFS+NOSGCWNlu0DipGG8n+\r\nWyenFV3E732UznQSW603ll1MOuBMfWJaBXMVwa2oN9KshKe3eenRbr7az6JW\r\npWDbwAk9jUP3fhRkGtpbKxhOXiCk8ckIxNGhl/tVXPfurG1zg2AQXvZko3wd\r\nJSNZNv3kyOeRwkvrN1gofHyThzBSgETkYHaIxa6K38FFhJnSSHz+/6DkJ8UJ\r\nrcQIs/QMYvAJXt2TiJGvyODRYic6Rn97fHlRZI5F65NuxYN8AqEAf3Y2Sh1C\r\naipJhT+Xqvm7HyJo+sQ6MbnP/0rg72lGwi+NmyVmsiIDuU+n0atsDz/BYr//\r\nNYwHmadPllvBlHM2rCPOr6IZFsywWMXtY//wUzIS7WI7eF2mulmVWybf2xGG\r\nNEQHgd+yr6fWNK4h+BALkHQNeOSJBBSxqc3fmegEQJ9Gfr2hf8ccSCpleylO\r\nyBPIrzo95BLTtbu38WCTGA3oIp7QjotOdcX0ZbOqFpLNY0Uu4aR4irMFQckr\r\nAxS94lrSaLINDj7H5yyNipn883fZhD0NoAw=\r\n=94fB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"09fcbf7236f2a446aac8a8274888dca7a9830e19","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-09fcbf-l8bl6rhy_1663762511572_0.5410989014605743","host":"s3://npm-registry-packages"}},"3.1.0-feature-61d7a4-l8cwseqa":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-61d7a4-l8cwseqa","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-61d7a4-l8cwseqa","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e5ef71f563f7a2e853f1c96adfc0066f2d277918","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-61d7a4-l8cwseqa.tgz","fileCount":1060,"integrity":"sha512-ubh4lLiz/f7bH7cxvgp1rH8ZoIjnzV8w+DjBlu5gDTb53YSWtdi5elDRTI+n8Hsx6JKuJKZxAzaXxYyuqKmd+g==","signatures":[{"sig":"MEYCIQDwp6C8cujHA+n/EmEPY7/QkCGbQIZ64ARaypxCzalwygIhAOEGtWZytt3syS6EcGVBC2AR/tyZ7em7fjmwUJYz6/9C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLDi5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqeVQ/+LB7Q0w1pozZ/Yr//bp/e985G+IpMRtAFGQo0xnoCBtoWz8WP\r\nWFoCGES5milqvgGmA0ddhAGKOYs+TDamqAbkwidfFjNHEZ/j8qFHrFSLsI0J\r\n8upJ6S4dJculvD6vC0pc7lEVSc2whumZogV+uSvl8HuPzCVVFvIqv0PirZyj\r\niE3nS8pVO25L/r2zc3KIRMu5sDYvEu719yfPO3JmK5N25giDsoyPrDAWGID3\r\nCgiAxgDk/nPSFt9Hxr0LTP/Am3qwAD9cnumCTd9b/xk0zTvX9KWizQebpSiX\r\nIh2PbUSyjr4eqm8iWi8ADUOHfejiysqOH4iFT5hzQ/Fi6IMKs+Rasj4RjrWM\r\nxlvgYJyGgeOsRebXWK924AFqmMfbHxA/tBXcIEWMNS0f4iaCZlzCWYO7inZe\r\nSZi/D4QmsU+KXn7NPB5JHCg8HngnegBHtHXck5qzBvyq8Jb97nWPgDVvJkI1\r\ngBqYB8Wg82TlH89FmzYM8INZOax2nR8bpBcK6D+caOPNWkItrU82r9G6aebM\r\n31ebNo2RK9zkQ9sx1zOu2GtrkeWyiPx2OA0mA/w3R9SCh1mqCY8vK4mg8bER\r\nBN+VrxDbnFy7qiHqD3d+Ub/kR52rTtEs+WWGn/q6HVbpkE87HItuCBQHIqyw\r\nDvsVDrNc+VG30b4SoK+2yDzlNO9cjU6Ywjk=\r\n=TXxj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"61d7a44de1549725e7cb32c2fdca1e0b3eff7b54","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-61d7a4-l8cwseqa_1663842489375_0.1976086542912936","host":"s3://npm-registry-packages"}},"3.1.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bc15fb389af3ff35ae368e567436d845cb5fd296","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.4.tgz","fileCount":1060,"integrity":"sha512-Ar6wiCgTyk0OebPXwdWZg8LyKGoh0B9kwbROqEt7uXEaYRXhA5HqX7lHcUbWGeHgf10bPnavlS+QAe1cPOVybg==","signatures":[{"sig":"MEUCIGR6O4v7OJ2pcgH8FVUDvBrnhS7B+jd0J0IxyioneHsEAiEAvorDUU0htThVXSoLJnGis8OWIgH8ZHD603b0YV+OKeE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLDluACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3TRAAnkOKAh3Mtzet4a2QrYdOuTSOSCvRUaVl/jx397BRO6xlnqah\r\neKlqa/tHoVX1yIit24Uy405FkQVN4scKAMyhrTdvQS7GMI1Z1FOF7suSpMPt\r\npoAHlDzvfV6Db8Lm2voR4ct7JXugB0OHMANZFr6v+s8ETUTH+9UM/PQ09qbW\r\nH4omvFMPi4j6ECwPZimmcURnmyuI3z8cpAfX0sY04wHUvGzFq197pBTbDu/E\r\n1sLP1hSM0Dj96nTPqVd20F95uKLuDSRNoTM5X3IZOU/3LFhurZPXvgYXD1Bw\r\nWAmAYa/6DtZ4+Z+MAfsNUjlreg50WkiZbzE6JzCT+dOVkuSyeItaNmMCzHJ6\r\n922WGx5fEYIPSN9ItMejvuuJNxMpLOee2Yd9GKlyYXt4VmkxHHtAJL/ePQQD\r\njlj98/JKVby0+EIsqSTKGjKbfqfnzvDXfElWu8jxoWEwgGn/ZaK4ZYR1EVGW\r\n8xBkByhXRP0f6gG41vXp8TkBdln0M1WwY5COYrtTUNGr6O5hKKqiAtUBnGyh\r\nCrEtz+xLbAAGB4/OXEknERKlNlVHoV2aWW9lUYt0hC8MqVU3pCHZm8A6AQIm\r\nybrssM+KTfEmovbwTLedIE9VaVorM5GHG4bLO4l/9Z7Ycx0XUlOHHqex6N8T\r\n5cTrXvfqBBRyHfQpZBs2jJKLt+mWapVI/M0=\r\n=1FdX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9cc2fb3c1e4fbeddd3d37310a10905a412e7982e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.4_1663842670102_0.9443278436791704","host":"s3://npm-registry-packages"}},"3.1.0-feature-90a006-l8lecdue":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-90a006-l8lecdue","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-90a006-l8lecdue","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fa358f655204c06bb968e5aee2bd644bf0a7a7f0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-90a006-l8lecdue.tgz","fileCount":1065,"integrity":"sha512-lzG4BgEt4oyktykU6nAaZmVwrKztncmv41IrolVR6vmWcX3ZAo3tkXZ+9qX6LVlmuTDFUkne09dqM2lEHfl/tA==","signatures":[{"sig":"MEUCIQCEmvYKHxb/5fApSZPHTCKV79oohF70293A6+Y2s2GsqAIgYQHhiXQ2+P8118VER7zRCsgnNiCRMdeIZ8pXwRzjlXE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNA1bACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmre5g/8Dkq3v4+Tr66Cye7uxAqEUGktKpQls/2OXAZmhcGNLI0JI0vo\r\n23HTEP11lAq8B+7ovIR4jKtEaksT6GEbsA2RGmBDz61qMa2bbF9b8GlN4Owt\r\n33rnnW6/Fy55KXb1zlhTzg1V/vld+/mxDKV6PFKp5OdqHniGOA0/145EQ6P/\r\nSL0JDcRLrFqxjw5UybjEtVJbjgcW4rgGAwRDX3Mm81hGEQmPQaG2OmANdGg4\r\nZioF6OCRXWPQh+vDLQ9lbNdHysjtMhW6UN/oBtfvSX1KhV6UZLQU8CG83FNG\r\nB9QJOC42UP5ILwulw1F2dyjX6Yva5UCW9sLRyOGXNztRDQ+Fgv607WblNLfQ\r\nxs5mD9UqA5s5vEcl9/Xkzg0zeLemeE6PpaLa13eihHZhrZWTRLK3ydEONqnV\r\ni+9sjxlzgLHyvvO+fOwbHmdd/wrX5dSFBE1KvVEm+wJ15SHJ1b80EP//S9w1\r\nFXChE3E2em9Ya08KXN74vbcrqFWmAA/f1FaCGhw9cv0oM2bXBeE22x5CUxIf\r\nxRmwIxA9r04PSxnhHIUxhkAYRTDVbv+/UbbIgiw+2uvRtW+pwn7FMF6FCtUy\r\nfOYiB+QZZvyTjX99hMWwbeHowzG2lAee7ezM3s9qwrpFgF9A89thStuvCN2z\r\nXXI/J2YUqxAvzVS9zIQ9tVH/YlmcbQhEBk4=\r\n=NxCG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"90a006cb761344731f6c2df8cff8ce201678dc77","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-90a006-l8lecdue_1664355675132_0.7597933865493978","host":"s3://npm-registry-packages"}},"3.1.0-feature-8a6d80-l8lgzg6p":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-8a6d80-l8lgzg6p","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-8a6d80-l8lgzg6p","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9b2d9ddb53765fa521124c807ae24fcea0d4cdeb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-8a6d80-l8lgzg6p.tgz","fileCount":1065,"integrity":"sha512-hQge0KpiJyUr4csjxSnxJtachRiEUBr4woVvKT0OBg3iqa+YAwSyLeacdGGzMfPq0O/tRhd7KhzM8Q4/VpfJeg==","signatures":[{"sig":"MEQCICytJBeU/NL4HKgqewZF4gKb4zmEiPhJS8GoxH20mO1eAiAS4eqeUUIfTh5BoC3pZfcX8SK23VrEfpJeTHMakrE3ZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNB6sACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrIMQ//YO5BHSJ81zC8BhZMS6fp5uM+qfCdEAfvgLtA3R6sUvMm5gzg\r\naU6/LYH2FBMtvgI8BSSPWe2Uc6pdbAKa/FchEONnDO8i/6rNflrNO4U+qzyq\r\nrc2dPZmwnwXE9rStEm2+OWWcd102YgWcX9UKOwofxxHqOjIEf15xfaSF1ee1\r\nZ7jB2Ks4BGZBiLHOGf8Mf6BwnywNM+SizcJa66vB+obWD/smczh4CnC0COhJ\r\ng/jFYeW5JNVdcILWMQUGJuBVbZe6Pj5SRRiN8VXpjYZP9rcTlvzFJrP81ftx\r\nNZEt+2XlikatBen2Rr3q4jDIzfw9exu2oNl+T1TrQOl2IL2u8kP6/XC6m8TO\r\nJQTM2mvwv0+E29C8O31RZ6+D9sFjCNGJhDWP/hmvjcL47s/eLynHQpUb8dbn\r\nI/9ShGFt9eFeXCnhXTKDN+qlkOMdrHAFHX5kI7oqdyCt3KYuM5hVtyNo9QUn\r\nAS4n1qhsefxLKZkgHM4W6NzdQkW/BPfsagH3zze3Ufiyu7+gvd9XJ+QkTlG8\r\nL1y0cqewNsdU/ZQwGb8ZUlPvp6IC9v2OFcFYgvdR8g4WR17scytksHsUdLrB\r\n/LjsOBWrMX0aAk3xSYwxpEJw5x86vaf8b5ELqYFbJOzZy7as/0Xe9ZbMIHSu\r\ns3YY6++/OjdXA6iN/URl05PB4gwxA0mlMd0=\r\n=LVI5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8a6d80bc8f5e1cae81a0199d8510d926c4a7be86","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-8a6d80-l8lgzg6p_1664360108345_0.8834127545890087","host":"s3://npm-registry-packages"}},"3.1.0-feature-c6dc6d-l8lhg1zs":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-c6dc6d-l8lhg1zs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-c6dc6d-l8lhg1zs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aaf177282362eb19a51fbadafe54b87d7e3626f2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-c6dc6d-l8lhg1zs.tgz","fileCount":1065,"integrity":"sha512-WvqvGOHkJsl9lrUfPcRyA6hFad7Q+xXOCQBZQwpRIeqGQYKCmrv05I/fwsmhesDpH719UFjlCEQ5tDxewCyVgw==","signatures":[{"sig":"MEQCIHaZ/NA7Kt8oxRzxJP2krykCXjHwKS6cjwYX7z1ZomBmAiAzKuxWKt5AltvkTKJubIzkmGrFxiTgAm6efyj7537uXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNCGzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6/w/8CU7M0wA59KXb+V1swammnPyUeGZHo38NzdO+l8XJEisd8EOe\r\neHwIFo9+K99Narr7NbrfW79zP9YDNYJ46zwALpvbAg1jYUrNNkQv9MQ/XtQU\r\nFARBO3GeHIejbVbDMZdSCfH4MBIwJqgCNTUANxgneD0LAWxIYM5OYvEXIwCj\r\ntRCVC323f0glYHgGDcf1HBjlhew0kw57jvcTSkf1pGO4/QmlD5P5bm9ZPFaI\r\n7soO0w0A9enYE9Wg5iGvdm2ST9gE8x0LM9FunuFgJQNvZwV7bz5avWsMkvsD\r\n9e08zccnVibw9n/1J1rtw1eyoYYmFI6wQ7KaR5HcG+d2bL4Wd19I+mzLNq27\r\nQFDgNPHjlVPe/aAU9g26i6pYvfFmCliuxU0wG2J8oC6zxHAvVC0eGIuu5+4g\r\neb7n2Mawo5rA+n+aBOWRB/oiJaZQeYUEBA+E0jpvvoNBw2m9oyIeDZdS7QZr\r\nBqiuYwrmsJNvh4c70oNoc+mtAfN3FBdee7PkTEmpaOtkj66+AyZeRREjY8gO\r\n2sN5Nb8OKhw0XyWzcL+B+z9EkzNDXKRmhvowK1okvQW+hIBqsB2Hz+Ae000k\r\ncnBK7DBRRW5HUUH3wUX223Ica4fiU8RWlVwdiJPxEQ7XiDOhusaTq3PmQzm1\r\nIYiTxY9w0RooSkKzvpPS7JCykZ+EyOWcRAw=\r\n=vlCh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c6dc6dc36a03d19484a24042cbf013d04a517edb","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-c6dc6d-l8lhg1zs_1664360882968_0.6624428952620818","host":"s3://npm-registry-packages"}},"3.1.0-feature-a19754-l8lhm1kx":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-a19754-l8lhm1kx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-a19754-l8lhm1kx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5c82985d7e166769e5b72ffc2aa87b13bc6e690c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-a19754-l8lhm1kx.tgz","fileCount":1065,"integrity":"sha512-HRjg+Vnd/kskDbQLlfqj+Zb+4Y3P5U120xW7zxRTQAbIaoKM91rPsNCgDYawprOEZKkQAa0Zv7KKoT9M+XIMRg==","signatures":[{"sig":"MEUCICrsXnzn9bgO5o9a1eEvlKwFFRD4Q+viH9ajJ8eGwqxtAiEA8+pP0NzuqN1MniuRX+2knLcOTudOYjXkN71qr8XQaDA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424786,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNCLMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHRQ//eZLQS4W2GrunwUwEDr9br0z2smqwcRdrn0ov84Y63afzIWBZ\r\nrla6LGx9yPSpT0pX/5ei3iq3j1CsjzN9bZkrYFGu7rrCwYf6pMaYV5VRZtx7\r\n48CV+anJ4fzyQeG/mb3lW3uK5Akz7O6cvIi/w8CViGvOPqAokPPBJzeiR30G\r\nUS8Xfd16JhFDDPqoanNFwkm/SbXfIVUpycDNo1mVKpzakt4brUvgB/pELmJf\r\n9GIE0EhPc0sz3pBU7ZbTzXKGrRL05Pr/GGMU5xT5cbfJA0NhmB0v4stpIR0n\r\nWITGnJeZXyAd4+f5HfxqK4ZpB5H9xSirqvux3CaXecFBVk4ndzYkOEOcyTG0\r\njbFSUrzfVnsfqxMjMOra+axVDHLk3qdA3AYOkV637BbJ8qSqR/DTuLDOE5Sn\r\ndgDdwXQmswvtyxPsZbotTalEh21EXnOCR0OD4JJYU5SzDQA9NkzyFUhmIiPi\r\nov8t5Yx13tdniFpxKiHjFK0JP+7WLj3t6oMCsl6kgnLNwr1LWkl9mapeuAut\r\nZLBKYM0dqTK7KWOO2E+cTrTLquCROTwAHoFUoBj8DCkuTcpmAOtbutZHb2qw\r\nW9BlsVp5bPEYqa5pcU/iqZyIqseQCPx1XFooO9NFI0G0c7dengQhYlIB6hAX\r\ngoQjjrYKEIZRjGiUCCBoUWUwsmoxWrprJ+E=\r\n=fzAG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a197543ba4f11899249d45d6c730d7636220d009","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-a19754-l8lhm1kx_1664361163971_0.9567619470603024","host":"s3://npm-registry-packages"}},"3.1.0-feature-cf6b3d-l8lig9yr":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-cf6b3d-l8lig9yr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-cf6b3d-l8lig9yr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4c5ae8866f6913f79efed0d8fd61410d95f0f52c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-cf6b3d-l8lig9yr.tgz","fileCount":1060,"integrity":"sha512-ykJ8SO9tD8V1euHyg9zSrCYeF+WmdvEB0Yz77u675YVFbSEWwloyPvwsnQUrOC689BfjIwP/xOQBL6evkK8KVA==","signatures":[{"sig":"MEUCIEswlAJAjs2IP3cz35Wuq5hbjIQ7qhWhLxCynzdEWARyAiEA5blteBehO8X3c2QIWs0O75ACWQeoVdBoUlXe8TQDSfQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNChfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYShAAi9gZY0q+pu+9s4EUjR7QaSYruFY9Hg76O5HIxsmF6a8NFq2P\r\nTgMr17MIrZD67+DNG5ZZNyZou4EsrO0PSFSZGSoOiO97ku1qiL6oL05mFZ5X\r\nsf9070oK7SQlVPA4SpRn49fDVqIRQpQxmxMLpT6r35PhG7f2xwB2coL2s0NE\r\n2V53bE/I7g9WXYC3MHUvy9te8Ttl0bM1Q59XF4g3vzQ2hruxyJKiH2wPasgR\r\n6k/WE/Vwmdow1m+Q/oWy+Uqvh1cpNWRVpLsOF688WLSlZpEDudWt2QAvPYo7\r\n4MOQNkUkg5qeTUZrmL11r9PsFwRXV5MiQj7wiloYxt0PXXfeAem53pmxfenY\r\nq8sv7nt78F0qip0WPkUpH+U7Vod6pY2pr0PfN21BKfs+KdZb1/3SYLFveQyA\r\nQy1GIgtXX7NkR/YWJ9h1p/XYPqisdGTm9X5rXgilRymhWBRFl2bppyiIvZ+T\r\nYpsGSIPIR2MZxehKAWFtR2GHU0zbu5QhGRRte1+IbamvLGavgusRcmWF2z2u\r\nsOYeeGbLlxMkJ62jA93xfMHJ8o4Pnkw8a8X8ZvgbyJ0hmEyNJ/ZuLO/bfFNE\r\nKLSHH5S6orRoEoipw/PfrRgmtozgXYi6ykISt07yaW4MqEetyLZONBm7A3Xg\r\n3zRYVaI0am0O7J3e05t3r2/JIsjzG8jObHE=\r\n=TjFE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cf6b3d5e58a12db076e70ce02a66c982ca14da17","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-cf6b3d-l8lig9yr_1664362591028_0.9419086844381046","host":"s3://npm-registry-packages"}},"3.1.0-feature-007d0c-l8lo3yfr":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-007d0c-l8lo3yfr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-007d0c-l8lo3yfr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2b1f4b349d56f793e2f0621babf91900e61ef91d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-007d0c-l8lo3yfr.tgz","fileCount":1060,"integrity":"sha512-t4DO7oFirce7aQ4LA+Udlsz+v57Eb2gcq/3XkDXEupPIMDb2FGjpWqbzhljp8GJmWUBCJ0hfU6oe2mOAths6Ew==","signatures":[{"sig":"MEUCIFPPtyMWiihTHYkqozT/usnanzBDYe9dti8VU8MGws3wAiEAvq2Wd+1yvQEtro/9bSa9M/Oxrid7/9ytvJbZEXdbIsY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNE1uACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7Yg//UdW2FJgbk8ABTT+MsxLj26Opzaqh6KF0kgmYBcnyKujMrjeC\r\nUdnC3mNWCyvnn0y8RN2Xh3jY+vOI+SMnnIL6vRBTfYjLoCMHzB40FGS22SiT\r\nZh8dHkEhg1cqssXLVg3urL+tfXV0QjxBo6u/4tcNBD8hq2Uwv5lwz99zw/tT\r\n8vgyEUow0OT+Mwlq/Qda+x0h4Iv2jQO9LxCE+QyLbtzTjvoUvKjGbz5X7yNZ\r\nttWlFd2R0f8RcsI7Wv69KhKItadRbtgeP081p49vagNIXQEyguJygw8vVpbf\r\ngxMXqcNULb1GcFpPj213S2sKgTFWSHhm9zb2EgaMmjtTw8mEA521WBaTntcL\r\nQTkvg4S4IWVObR/4xhLF/mgu9SGLQpJc6ojwr6cVE68Ai0UsUmnzEt9pRvHU\r\nuzbamXJD8yrYIlv0gg0IlncFbhM3HMneFlw4FkQ916CZBST89PNl2H1EOUJA\r\nAHK/2H8MFJUnwMaFZTMrSEvWfmsKBKpzhhuXHqUSLBiiPDKcuuN7rj9TXPwU\r\ninH+mE1OBBbf5AldsTQsuzyXBO4xo7/TF+nlB8JpKa2JANsnhZQvvndZJw7v\r\n4xvjhduGPQNvavwSb8/DT5faX7PhxPPWJ3xImyvu5Ovesi2NqNwYb9dSkVMl\r\nJU0IgGFPzEnsEpdZZlUobWpOn5LKH6qKoLM=\r\n=CpMM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"007d0c4cde41d22dc9477ae1d8d961ffa77f6e2e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-007d0c-l8lo3yfr_1664372078383_0.1436083983709504","host":"s3://npm-registry-packages"}},"3.1.0-feature-d1dfd6-l8lp47r9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-d1dfd6-l8lp47r9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-d1dfd6-l8lp47r9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"83de3f5aa8a84213ecd3dc41c6255347ad0d3536","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-d1dfd6-l8lp47r9.tgz","fileCount":1060,"integrity":"sha512-XpXzWu9SKZpq/ptXzfEpdBE4c++hIrpwdsb0zEIKMkOoZRX6Mu5BBlAxHhhGxzkFH7kizsrlkzvUQCyKr654nA==","signatures":[{"sig":"MEUCIQDApe357xMYyju1pDPHd6e/CgX4/5ihujND7QbYf0v46wIgUu1Pkw/2TWoTA0InF1T1Q4tylNnOC2JKU1DHXGJbK3s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNFQIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp46A//TKscxUDWkWVH98DnLAbDv1vuZktJ6gopUngbX1I1p/pmfhzP\r\n65X3PQ546I7sXcdQFNb7dvwX0osk1tKnRUlFgW/zfjOYEss/FvNIrfFAH9fM\r\nLgPtHPv1P7GwaSFwIdNC6GPKUd71fNzu5YvjcME/SrG7rPsUEYU22q52V7u+\r\n+hEgUrqmYPGaAZaOEtgBQCyA4JXKzm2RpcILb9ErhE5l904jdtuN3ek8y1mx\r\nsy400S8wfN1YxOcTvFHP+1R4d1DRehbBHp4jC8zdO+OriD1Ra8bcoZrN9NtT\r\naUijTvlLKFnR1JZm0ooULoujIA+zOfgZVkcdrQp/uzfhNvJfg1E4gqJ8Jgh6\r\n4NoNX5FfyhBpjiznTCISBBQanleavpHg9EI1OEAv7M2ZprFBnM3piwVALymM\r\nRgt9ysOSgs7tY/4IGU2o/I+roFZnObCNszyQKV0oRjlLGjrBIGAVEnnIprAw\r\nBQdQiEX5mM1DBQ0Tgu8r7i4RU9mad55fJ5YP2cpYmVuuGRDzw0O2gNKnGQE4\r\ndwBh0XInVzHtZFH1eppUvsf7aouy2WfNSbFoN8Cw8kzL4xEJSdBUExncSlMa\r\n83+1eXouyp68YgEDXd9HHoRXvPBLikTJ2C6dFaWa4SNODTD7KjEZA9RF9Alr\r\n8IRCWCRAfm7u3kl24G/HHCqKXeCn19lARdE=\r\n=AWeI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d1dfd6841f988a6172cd95caddb4cb8874f38205","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-d1dfd6-l8lp47r9_1664373768315_0.5509519434048926","host":"s3://npm-registry-packages"}},"3.1.0-feature-5cb050-l8lpowd0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-5cb050-l8lpowd0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-5cb050-l8lpowd0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"713f16af1c73eaa631bf4307fa730504b4433154","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-5cb050-l8lpowd0.tgz","fileCount":1060,"integrity":"sha512-MiSxTb4ZBxf13cwkiLq90eeO9TCwcDYcpRBl4iEcMXQsYwrpyJVo3AKrO98dHyBWUWMnKeT8ueoPIGF3o3Mpqw==","signatures":[{"sig":"MEQCIE+NNFjQzNHOxu6woYFRzmVE1uplD8rJaVYplmO7JR1oAiA2pi8H4fSVWpFwNwIChkT+/YnstqfOEx/AFflq8QZtoA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNFfOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpE4hAAhBnTDciML0nd8R6S6l/Gwc101kgB/5q5J6+yneCxIFLGeWPc\r\nRVU8zrbXJyakZw0lkr+bx1dCeb/RWs1/NNRX5PjFQYwLZj4tt4iz4bBSiuNs\r\n9AgJOd5t11NQ03VQ4+cm+THCPlxWngZw5sjYnWz1MApqNH6n4k8lMNNhSkxN\r\nKN+BQYtjYmkkDZvqnfDn7NIm3DXloOhm1MPSfIliPZyBHcACFRi9s7Rg3InF\r\novtuxOBko5IYzb3g3acCQAZiZjIFGtrSr4oYCGkayfdOSylgmwndcNv57y+Z\r\nz0LLSK7zNwZQJISMZ8Ftaie4LcK3BfHUCnmV3PFbL/JL143L1fPRaPwFR8IB\r\nTU3aXbD/H0pqNoFE6AbRGQiIHzMJW5iwtycQvu+/pkP6tVY5bGUDTAna4eR8\r\n2jGuZ0CunatC2Uy13LW6SX1uC11KAtgHNHtHpKsDSrmsgRw/LaFPBd27Req7\r\nnOW6aK0bKu3HPEjKk49wKpGxwzjOlpl0lk0l4kdvrG3mTZPaRIc65GF9xoj4\r\nSZtYcqYlx3bhmcDRFA1Hx2VyEHLlYvLcHy7EC9Cavntqm+HDLHWfgPf9SzsQ\r\npLb1S4N4DHA3OKdUoYEaCoQgFC6ExW/vfVA2snS1WaHhIyApGCjEjY8T2ctP\r\nezWaW2CHFerjmLgo29jA0+z096dZCd7ZnVY=\r\n=H27y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5cb050fcd1ab94fd1e76c12af45f10aee07cc0bd","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-5cb050-l8lpowd0_1664374734581_0.5261141071166486","host":"s3://npm-registry-packages"}},"3.1.0-feature-45869b-l8lrannj":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-45869b-l8lrannj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-45869b-l8lrannj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3737356d98fd4fdf4aeb445593f9ce8ff3df2526","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-45869b-l8lrannj.tgz","fileCount":1060,"integrity":"sha512-jclFw6zRRnrIDo73Mu7CrGouh8Wk0hhy5HfBmIvSZ/lffA1M/1KA6PXl5nTanNiwHlcPsBf1VRnjqwOomOQ7QA==","signatures":[{"sig":"MEYCIQDtEtw99MLCXcqESZZ4rVZtszJG+lnN7WmSyWjq7lDl8AIhAJydWzT8+wz1uOEmYUYSMxrGn44ioRvtXQOhcjFcyxGy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNGJWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRSw/9GV7y0BbT++pkTWVAuKNjdzw1f3698eusIorN5DTpphNJTyo0\r\nqys9E8vkzvNIIWyq/D5POupjITopLjOUyBJY1rhv3wkRTrXZ5Nemmw7gjOZr\r\nwK5kshbpk/QUhFJUFfoGRv4my29W1YoK8G6G4OTyzpvX53gVPUyf7+0hYH3R\r\nG4Z0Fz6Pm5U1Lbatd3HtXqrIgvdQ1sx4Kijg/IW2stwAscT1YFgckUGamz/p\r\nZQjCKSRZdF/KaG/UUaxuABEC3mJyB6YA+uUpB+sG74N8uC/9bPubc0BQ5HQn\r\n8PqL0ezT/tAsk9CoZulx5MqxSZou2NPmsONjO9cY1/f5moz3qmXdWhLbQBLi\r\n7OC/KG5ZweSfWQqJx/F9pfC4RUJ7FE6+fzmVQsmf0pe+rfz95wbLdG+uNemV\r\n/3sHoL4U62H3WZZKmRPgUbKoDxPhnjjZ7pqEp0vazWgy/gletJCMa/sOzoF7\r\nbdth+J/XhMA15aUuec6qH4B6Xg6WjuwhIR0uN1CYsG0WrRaNAhm38Fle1QtF\r\n6Rk1MWEjDTD0ajqAk7c+SRF5r0qHh4wPvilGqlHtuZg+MxP6E2Bah+nKVbBN\r\nyTGfez8WLXqr/EBCIlRhoTxbzv2xBSZxBg+FvJfY9eiT6QBNEQr0Uuke2/GT\r\nJ+30RJ1vE+901OT0dey/nivmU9J08odpmws=\r\n=hAjX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"45869bfb2698647fcb35c44d4c7a8d57a07c97c1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-45869b-l8lrannj_1664377430643_0.8815801678916286","host":"s3://npm-registry-packages"}},"3.1.0-feature-762968-l8mtpjdk":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-762968-l8mtpjdk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-762968-l8mtpjdk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b6a151b8d18427c437c1706dfe8b3426995a890c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-762968-l8mtpjdk.tgz","fileCount":1060,"integrity":"sha512-mYMbx7hWz1lHW1kqEqwZ1AFTKJPXwrPg/N6xVByotr16CmUBqf/bSIp6/0Gw6Vu0g0f9JiFgM8V4FLL/EhYAWg==","signatures":[{"sig":"MEYCIQCQSwOGkPYduHW4FG3Q/fKgzHOClriPvcsaoNEbT50VFQIhANmtbClgjerpaXTJN9czp2VR0o8OGNRsWTdO+zNUUgvL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNV5iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+dQ//W2nmHjBG1LTtCfMR+w0lT0k56PlQ83cgclOGO916XjTHHJKO\r\n+cpcz+vmE35ek1j+S7akFWboe9UknNa/VBR/BJQsyhttJCaFlDZmb0scY+zX\r\nfBfcgHvIpWh5z5NGTk4iChdrk4JN66PjrtP5ZY+kXvsCf7j9ux4BlFmZHOnp\r\nF1Wi8368dsOqzAPc5+yHw5oaJdxwfkdafcSZ/Jd66+vRDACYu9CzkEuMS0+6\r\nViMRy3LYyQOPLvTWxPKT9S4TukjPaCWGPnvERt04wlyZRpwTocVUo+JmnZRW\r\nLaVTF53xIyjIqynjgFGtFdrPhSRwPMwv7ie9pJKZhe8+W++KxhhpXPKqZAaq\r\nb7e+NutqH6nwLAsp+AiAE4ZE7bejn8DsVhJUgkEjyUHQL3vQzPZ8LfyUO7Ce\r\nLrvd//JVeyp7w9kYGBss2O0zs1nPz0agh2dNUMRocNrUjeHYIcVBdGZNBOzG\r\nJpuPXGdTiHFMvf/4GE3I5IQEge6kI8ay3JVJc1LuY3hEw63vLRfGhgqfzy4/\r\nuX8+pehuKivHuRLRmk0XBUSuNWBV9M2Df+NW5I7acR5h71ONPliboItoonT2\r\nob7cahUOnS+kSpx8FCuO944tt3bOwx8ry1lEyZFIi/ESFjiTOWZB93Tq2ZYE\r\nCQMZ2OkWAuWExE23gIwFy/U3BoiRBR4T+ds=\r\n=Pnji\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"762968dd64c3d66cc39c5d9f4821c8dbc67dc71e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-762968-l8mtpjdk_1664441954420_0.5606975348012995","host":"s3://npm-registry-packages"}},"3.1.0-feature-35f293-l8mtsa6w":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-35f293-l8mtsa6w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-35f293-l8mtsa6w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"525b64305bf34a56c031e7c38b68e244270711c1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-35f293-l8mtsa6w.tgz","fileCount":1060,"integrity":"sha512-K3E+3y9hMWGHAz8Fd5+qDeR7saRTdC2NRabmLjH4BbKHP2MB5yuy0Ml6gEIfUukyAmgMnHPu2QwA+uDXgCjIfw==","signatures":[{"sig":"MEUCIQCQg9XitgIdCUFPr8l7zCQY3ZOftVWch4YYb3wTTwiDegIgd7as5EgWlHTAUO8oaOcVRpaI5zyEHtL3u+EKe6jRukQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNV7cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMlg//XBEil6480wKG1nl6xFhtrZ06+61+zT2nalZjp/92n131gMy/\r\nVE4THb/w9GrgERDRXIPBfQ7xob7isDMxsPFT0kVVb1cScP7WoL8IpN6sRfAj\r\nRKrM/fRf+Chb7diQsJnCHkilJ0vpBFsUUk0RyafL3At5FKRDxN9EK7nSp7TL\r\nORFCpSwpoOV1kiNeDkfLjl7rzP3BixrQ5F4VViLrJdkx6IoTKfsCpi22HgYb\r\neLa9oz8nN9ph90hcQeATnIS2qR3X4nqgxFB+LsAfQC2Qr0HBsmJwBK5EUdSI\r\nNpikeAHFanfG9fIOIan7xIfIZWJ1eyh1Smv8GNqgOKyO5UXA28agE6TgveXb\r\nf7xAFrYQTlTa/iXMS4gGLfZt0fXOif08Eyzctr3kJNa/8xMe3K13IPKWJk92\r\n/WZHF4kXHl0yoPkqOjTEYhKTabEygAyly7dqLqbncHQuWcVNWy2kSjhvUCO3\r\ncvX5slVVVsJ0q1SkvZm5Trb5H97OmIiQQ3dJJ08n65eOLJeRz16dio6hi3j7\r\ndU6PXKXgz0x7I7SMcom/T8jNp1bvLOg3GsZDPf9g9ObqW3nXMG35l/VgrCj0\r\nvMB8mzTEWMNzxparPzEIkjNdCvExV3/iDc2FZu/myJ15fhCuKIDfRR7N0d3p\r\nc66Bw1JPp9uO0R5InHqOPUVzgF4+Oj1ebNA=\r\n=/l9t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"35f293cebe55c6aea797d892bdfcc82b6bca2ea6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-35f293-l8mtsa6w_1664442076262_0.15817967365244745","host":"s3://npm-registry-packages"}},"3.1.0-feature-abdef3-l8o8syo9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-abdef3-l8o8syo9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-abdef3-l8o8syo9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c9394c34934d5055635e2c5e6a67a68021049eb0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-abdef3-l8o8syo9.tgz","fileCount":1060,"integrity":"sha512-4NRxvWLwJ++66wWCG2FwKAGcMve9EinkanZWG8st07aRapIy6iAe/ed7UilNieyLNz4mF9kwC5AvdBtMwzPDfQ==","signatures":[{"sig":"MEQCIBFVoJkxynoluFWiyp501WXF7yI3S+9LKWFsFC0Wwc/tAiAxmAj8adfL6jvcZ+mfyisKX0VrfdYB+0kNETosJgVaRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNq2YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokcA//eKFoJmxJ4negdeDR0BgRtNdO8ON+jYtFUSkOeUx5Qg65MipZ\r\nTiNAKuoprDTjD8rRrgiY0nG1EEguglgjYRBRk9X+cFA/H0JWEpnhK3YMY56g\r\nNvEoaAyxymaPufiuLSWTDALaepLkigV1kZy31uCwuF9LI+gefwP5U0RRQ6Sl\r\nA2euE8gAa5Z/XHiZu2tYW08kgRY8cOZ/rtsDllQkKdhJ+5O9GavSRJYAEi2H\r\nR58OLdFVX8858twXCwQI1Ya+9vf13ik69Uhbn8lie7nz5rck/RmaeLK6cnz2\r\nr9SJuYEIRnknO3Sp20EeHBSWWhkK+nlWppnn+2w2FUIFzvbiiFyv3/bNUg1b\r\n3oE35vL7V/BE4Yol4Wq7n7Bs/6hNCE4/3G8/D1L9gPClujF+QAnGnQC85kUE\r\nGf4dgxFkrJYnWZ6rgs7TNbJnD5TUOBbtFHLXbrjjxYIh9tFNuTkuKoIt98JO\r\n9mlvSUKcetyu8bSXb1ljkiSL5CI9ha8T6b7VjBIEF13rqXZlk3gHpKoImLcH\r\nnlBP2r8G6LKphg6uhjMg8E9BpcVTuvNzw4WPx/kwM6SAugZyM4dTWfexuWYy\r\nH4iaIKBG0LFQ2QKI+pM81zkT/ydprO5XipMk9yd4dVQ3lfagg0SJvpEZ5a0S\r\n3TvKKaXxZYkhgXb59pDyL/NZTW2s0B7L1tk=\r\n=GFHR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"abdef36f983ffbd229e03ed6e474d12bfa33a04a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-abdef3-l8o8syo9_1664527768144_0.3058257804643585","host":"s3://npm-registry-packages"}},"3.1.0-feature-1a89e0-l8ofs0gs":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-1a89e0-l8ofs0gs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-1a89e0-l8ofs0gs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d841e4249820d2f21fa382faae905784d48d59a6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-1a89e0-l8ofs0gs.tgz","fileCount":1060,"integrity":"sha512-I38nzG1/h+AyDNvN8LFTZ+kUMOitfF8hiCF5I28kW7Ag9kg8bEy5NQj5y7b+ovsOKrDUaOdY7N9IbTU90yCFtg==","signatures":[{"sig":"MEQCIFuFFpVN59qnyrkWfCpjuYEdwj1L7y1CqFrTJDAs5tlOAiBfjzcRs1qomFjACGPBYhFXNlOiksb45iBwOrtHdYaY3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNttcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrKg//XP6airGdwyl+jfqNQhouiv3JPhr+EpQQp4oD4qOfcUb5n289\r\nKld/kRGBL2Yw3PyJgEyX6zNnS/Ak3yfyb/TEViwGF+MpIzu5fiR6KhACchdP\r\nKISMIfW1tgrzq+gnn2oVSK0QzXWNDyRRISBgQsOud6YVa3J50J5gov/6k3Hf\r\npiYlfMOyUSYY9by2Y4rvBQUhUV/pE0aaDFG6CyRbCZ9yohRfoPeUVk0iaWtl\r\nsWNzQfNzuf7vFvOdp5Ms93U8cADtnLWen+mW8jzyCv4fcR+/7zTpyceESXKA\r\nbQREzl3is3EgJBecarP7U8XbkBKA+GhHRtlrulRfC7bZbz6txnxFU+k91Esq\r\nKN9jZz2hYdCB741uUtz7imd8S95fdNgzciUun0wi2jyE03sZ0Oy1/V0VWOym\r\nsUHvsiAi26wXO5T3SJWl00htlC/iE8bAfAC5kvj3zqcqts0IZ7vpEUxBM7D3\r\ndZu23EhwMVpZIykGBqgLwsMqCEy4JGHddZiJIShfeeutfrCitu1+NuNpnMLX\r\nU6vo3ObbTfQNmv58gNEHrJz+4V305GYIctep4nsMxrVgCNdXa1SOvQ8gUvg8\r\nZSLuIzJWlXrNCNRdu2mO2aaTPo5TflO/mAfWB9UJmVT6ZP8Ept+GTMG7D6yT\r\nY+C1s1ZgtGYiRkkEaErTo5i8U5e8bwFlBHA=\r\n=r/lm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1a89e03c84950f0a6ee0c52e737ddeaa114423d9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-1a89e0-l8ofs0gs_1664539484330_0.34576464823249387","host":"s3://npm-registry-packages"}},"3.1.0-feature-598bca-l92j6gp6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-598bca-l92j6gp6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-598bca-l92j6gp6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5bd7c53631013d6c4d4f878fda686da7e6ec0445","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-598bca-l92j6gp6.tgz","fileCount":1060,"integrity":"sha512-fnBKFoZXlV9n/CWQ7ud5RvQsrMrN2lbHnvYbZNJPyDt2aXxSNDRJpSpy2goTTdthSsj0A8H/ySzzVoNX3pnalw==","signatures":[{"sig":"MEUCIFkBBB76uOjHJ3PRXhjyFJTjxclZEqSTdb7jBcWzhYSuAiEA47WqxPWSJgGA/fIMuxTiTo23TOlJNzkDcQT9yPr+WUw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ9x6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzbQ/6AnkqGo1AC8zI9XepppCRl41E2fRVcaBuoGB8oBRIVLF7EJTk\r\nAO/uUQM0DRSB3L1FCAeGsazDH9cOJ7KSUkDMXe6ctJlFhHwIfGxNx/zmGwMS\r\nc0k5yMN8dZG8cVSw5vOS3tECANUBgHugS9fHkgmEuBjJAI/h7yamDqfs/HOX\r\n9FPrgpmzsSIftiELARkG8j5vwiGzTIqeAWcckxOXKn4l0o06fuH7qRQiUzX5\r\nrYm4TckOr6O1iFJeC/y16HRe7zHtUOKM+l5FEYYQ5zSLzGxY3z+yYTJgC8dY\r\nju5pdWxM7UAGsTS4LptINDmD2pRZn5k8uGYcbkNxwddFtrHbjEZ7qdF6NRe3\r\nNBk5lYxrt0CIAxyT+hGL/Tokoh6N/FQ1OlkaMIlpHTIdzosluikPlZ9uLR1G\r\n1FDDer9UThwzYdmOLhPI/D/RBeTBQTzowi8GNmodDfPFGTij6t1vU9RWGhOo\r\nWH8nWt1H+AK3r135ZNb5uK6sl7tun1Z94z/m1jSxOfeZCf+iW2UwDPyLJaTX\r\n+hon8i5vAXHWEYw4cR+QwYkwZZq1DGC6w5CZIQGZyf0+LkWkiYKZSRiLHiy8\r\ntpUeVaU5sCQmS+vicrQ7ra+ZHBCll1Qaj5VDI9t82aFDziABB/RiYqYgEAPC\r\nboT15Nxecx46Vj5fku5RF+TeAIqHuEZuEcg=\r\n=RVA4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"598bcae981c286664604d51561d636c178fded43","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-598bca-l92j6gp6_1665391738721_0.3899205329570672","host":"s3://npm-registry-packages"}},"3.1.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c9430765292534273dd44e24df53cd9671300412","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.5.tgz","fileCount":1060,"integrity":"sha512-JqZ0dv8h0HE9/QDLVLBnbzathDsfLUNIM+SPNUBJ913PkJN+zN7pKRfQhIWqssH/TA8ybLN0EmN3Vw0PXdS3VQ==","signatures":[{"sig":"MEUCIQCdonqEwGQemt9VqnbsuRiy84ravFSkUiJ+eB9GRCYONgIgCHLzvRtBtVKmIW9J9qTyCF19ke6kEjiDbH9wc0CcWbA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRBfgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqcrw/9ErNkwjHjBldiB/YNNjeZ9ez48phY64yGcTYMqxf6SLGoMtzD\r\nojLJOG+DuZXhSekwct8Ndj9d7+7V9CXNsqhBd2cZa6x95FAWX1LQggwQ9Rdk\r\nFawVww3md3swXk82HW8DJJTSG8ggYjRFF4JCDmZjIO+nT+N3k1em9i6WPQO6\r\n+cQvDgtGjr+3vDfZ6/dEVX0aelDsVv/BQ7sdQccnrwtO8zPfmjAQkHiOpp2G\r\nQe/CD+4/45iPxStp+jE5TcnCvtBKV3PWtq8ONOyI3yTfx5iPYShr2ViVX0cl\r\nEybTzz1kgdXSyKnokLMlYHcYdeODcZxKXWw0lutaL1aLLA93t3vx8Lmq5X2O\r\nkPZXa/MTpQenlys/JNTBJEvx0ch4jlhyyp2ehTSbH8EQqgYRUCs5G1o/eSwL\r\n6X2XyeblbvoA4eeDcuhUBnTY3zkEpeFyk5hIGApxmgtkfkxdRlRoH9rBnQ0i\r\nidAYvyo97I5wJGkdphVQ5e5Qr/QQa8+w2CxT0z6wPAQpvyHMjk80ikuKN478\r\n6znlyDHCsDIR3UUwNVqpODaSbOXTzm0c3nZCHqOEHrCb9DgsX/qKmFr/tlP3\r\nNFgh2FDa1cU2ZT/y5oqTw8LN6M1hNgs1pgBiciL2QkUIkmfXG4/gMx8Xce4S\r\nGrjipvSjXUaA+X6vqPBE7a/ciDpnpmG+QEw=\r\n=uuHV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e3ef26d55e53475c5ad70e96e778609c56f30777","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.5_1665406943804_0.1088574582684636","host":"s3://npm-registry-packages"}},"3.1.0-feature-c3226b-l92scbd4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-c3226b-l92scbd4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-c3226b-l92scbd4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"132257a8d2d4ced1a671b7a7836f97c8453066c0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-c3226b-l92scbd4.tgz","fileCount":1060,"integrity":"sha512-7HuKY/X2DFvRVkg1qqSp2LZIVf0VK2CWz29VAFMXl3mSlxUsYSMSHnhy0gbUlcOu85gTPHjfUX2okPvx3jI3uQ==","signatures":[{"sig":"MEQCIHZ7Kt8Xr5MllL2epNV4tkuUkWOkq4AM9FFHtRXwsDJcAiAsNKsRGUolkYf/Vu1I9zcmz+OTuZPjozZxjk9xMDe70g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRBiSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5QQ/+OxI4CSGNtmqtZSIGeX6ANdrpYMNZLXyLlI4Rzn/DePNK1KjT\r\njn/9CpaF58M6fdj3EhjAYEImiUEXxpMWir+n7eeR1rliNQ9ZpnfkMj/vjbF1\r\n+vr+DbpZkIFL/GnZLo6YVCcwSvN5DZCrz5D/GhekFVcbRsOn5d/+qWSBVaIs\r\nohmumbqPVkLIDPy2hzFi+mUvjRY28snV1z98/qevTVwBT0dpdPlgrsyT3RIT\r\nbqK7oA6AE6E8u6zSIPhTjKJXS4g92FB/ZfpbZLPHJp+1KifUkBftnq3pAPOr\r\nGac4LdpOBQ8VqI1YQN5Y8+NvvLI9hoZ0MH0u3t98mqF7ILEr94Oen/eMIixC\r\nWkPO2uuAegnWLL8/jjTwPF4SYpChVya+Nb+HC1yoX8qoGVNcyyW2THpcmu5A\r\nxYu/71jX5FyBLQ4vtTax8OA1eOBlIbltv9/+iWyOxW3nWTssw5rsKwiRYQUz\r\nSNBW0rDL0rK1H1zoQq/E0/762605AAJ0pY2SpUn8bhZqLEIatp5HnRlGULGL\r\nPokmuCfXNEIspolzmspZUvMv3pdyr6g2c2rOwMFaT7VUIqA4uSM/QBCJIXR1\r\nU3r6I4KNejfYhPxB801NVdgzB6+U9qczERxoKkxKo79rbh/JcIGM27/GtqYk\r\nszbW9w7wEWtkCNSeoWbpGASa3jcxuDPQCB4=\r\n=AcFU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c3226bad98999adba70c3996238ebe3f84008cc9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-c3226b-l92scbd4_1665407122089_0.007317326551925296","host":"s3://npm-registry-packages"}},"3.1.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"de345aa05e6e584b9dea3c579c02a0ed8d91a9bb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.6.tgz","fileCount":1060,"integrity":"sha512-Ij/gl/1/hYnUM9vsG5TFj9PJYCn4VakSiaCpBrjo0+kzKgNS6lx9ZS6tyghkBqfAS3pMygWc9WP/12gGQHq7nA==","signatures":[{"sig":"MEUCICE4gdDxsLlRIff8CBs+oPvjuUwzDgi2f6ekD2t6PrTxAiEA6FYINLTUKJees//cFl+HiUsA8G19RHhN8Z0FbfO/pQo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRmpEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnZw/7BxcY1kGFmDGjNg7+xXa/E4zfipQb/DMR/k/XVIB4YPzdwRDh\r\nlttv3Nrz5t+9tTXLVCgRBV47ftaoy+IrTVvtSmyMYKHm88du9znp0YVxi4yK\r\nlkW79znuMDGt9Rk6gv0z5Zk7S7WgTMNuy4xpEunjGxKGJA6nSc/XZWJYffKE\r\nzgeBnQMHk1M294JI9843JNxLS2SKZSojaEyLcOinGYOkEDzjd2795Z/YguaC\r\nYhmqWxDpguCLXqiyAxm5xEHpbjr+aA1r5Qx6uYzg9o9rbUHi3GTnQv/cTdrV\r\nrdo7prZE9WRbvX/bzQjGSFPre3zNCLOWkl2zE6lHXN4Kobbz1Ud+oDeRQ6AK\r\niKFdNApaqvWm2fyfr+LuT0ltaDy4kfs6JGKTiMruG6DfPBjKtuwEiME2EYUB\r\nC3lkngIo5bcqP4+Md6v43K768lEP5GO+E+nt+frTobG6VMP8gUMVMPsNWrVE\r\nSwzP7YYeDOxzyqRqXzbbqjh0V04J0hcSmqICeLIK4JYHQeLwgvGs7mUdaLQF\r\nCLt+jGKZks+AqHPC6p+LDql+WB5WX67szKZPa+l3ZrvxrmO31UbU3XCD7FQZ\r\n3sbEAS71DJOF9Bp80wi5xFNU/IuIoJjRkC0MwpwKl3lpQ/DGNdfSzCFpv3+v\r\nXH5qka/7SSBc27tyt0u55nqdD/+Uviw12l0=\r\n=dRG0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e77e112dfa8c226f2442eaac92cbcca0f5fd2a3d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.6_1665559108286_0.21191780092286305","host":"s3://npm-registry-packages"}},"3.1.0-feature-72e81d-l95b56lx":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-72e81d-l95b56lx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-72e81d-l95b56lx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4a9fb3bb3211de85dbf1e2044374591eb34520e5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-72e81d-l95b56lx.tgz","fileCount":1060,"integrity":"sha512-YcrySl97yQkSToiiiawd4p43PIHPpI0iHCAJ+q5sMqyA1037/VxtGhvxW3cRN70ekYjMgjhUhFfoYYUU8cihnA==","signatures":[{"sig":"MEUCIEt/tpf2TP9mYa6oav7Eoi+cO7aiROwCC7pf0AiJkjhZAiEAq2mo+uWhxZ1TcezX7tt8CEofipCXbrgZxMP4v+pbqro=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRmxZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8gQ//bBGMI04uXzWpWI7b4brpQvZAL6Tz0PZ63c6hwn3N/7nNjH4+\r\n9Tt8E68/BjRnOgcjqQRbGxgdJdB9afUSuKIVR+d1HieODedanHqpJ5PFtI88\r\nxzvhUsqiTEzzVIBvJklVKd2S9KapOIcyx2auw7yoXJROHU1RXiXQIHLDjZMQ\r\no2kCfujqXoHqXINwUeYyoYCfsDFO3JfXCG2cru7dZF3aKvBH1ebrWGUEjq+V\r\n4W8oP+Ao5CqMA1nnAOxetcBkvKb0PgF1LE5U0Ghtow43+7TN44uQFK+VF4D6\r\nF690ivUT0Kfkhij68F7zBF2ATGzieceSpjFps3P/DFW0rH29d1RS3/MG83Yj\r\nl11ms7vlBZGXbllcRbKiUIqhCJbsszybhtsbz9UJDutCPtjeH1vQPDC2WMLE\r\nLK1XOgUBTSaCyce9b50ITkAivC3ctPvoiHjwN2JBt6yMX5q9c+05MYPRby0a\r\n12F4O6vB9p68uj/jWk1cBHelUrQbLVSXOL0vRa5ovsr18QRLJAwnoFx2DWFS\r\nB/Grp1hApyLdI2/sp5NHwJq+ubss/AyTcayFXcstNg0Y+1K2BsAbV3CtUTyE\r\n9GAzKGsrzeoTi10AqShNACbnMnXLs00gVUNUQ+op5gn6XBy1Num/NiDChsa/\r\nxPKbOv3ToyLl/gvDno96ggiAuUQbeUprrlY=\r\n=UiSn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"72e81d5d6f2eb235e17d4d0db43d943a61461260","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-72e81d-l95b56lx_1665559641317_0.7346599260870863","host":"s3://npm-registry-packages"}},"3.1.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ba83aac2a79d0c4751f50d5f1d4f9c37f452abec","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.7.tgz","fileCount":1060,"integrity":"sha512-8R7wGuYjrr8G73C8rmyKHoA9gKfZsXaWsi2E3ewCNJOCicxwRRQGaRuv01McAN3AhhzY0hNzDFrRiwuAz4COxw==","signatures":[{"sig":"MEUCIB2kIVdk64DeBlUU8AEutNdC7LUwfB/gFQP2+s1lKYSDAiEAoz3RSI9KgSnO8VdEfjU1o8xgMtf1a0PzzhKOro92QO8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRpoZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqL6Q/+K6MaW/5hxlpyYPrcE8/481Gr0YYHzMJ57g1TluNlspXWP9Tq\r\nSVrZK36GgBwFZAEiH0TijeRTP1yktq88iOlCm7GjgIi2TSI+4AO30icwdMZh\r\n+ZTfo7kSKp/LT/F46yqBNf7+H8Qz8uYGajQlSbKhPUZzDbl3NobgKvE1dcMc\r\nuRLgK0A/h/MUVgW7CKyBiBMlPjtyM441kiNWJSYO5ED+v7/ZsnO96jZa0lLS\r\nMc0DPmKUSDwkht2/loKMNoV9dLuI7pUCE9Bkr6gzaxzx2Ew5K/0d1aoKKYNt\r\nvcllK+b9lncPLSe0SZ89u1PIOn4N3o1QB2U5m6UkNa4zaXGyDZl48dQrMOwA\r\nAEbV/8Rr7p5hfsSDFAtLdlW0lTdiPbfNis6bAqOOrJTDuvNCHk57U+o4izQ1\r\n3WcOV1bmsTIqxk8zpbU95D7RJpW4FKM6B4VhrqTUikyqlBLewjq7Fv52A7Fj\r\nOw1NdQ6IXThhoVAmy0Sq4a/akYDn8LMNsS19b6a6A7a/+pnHKaSfqF5oz37X\r\nBp34EP81G9873Kp2LCgH8vGvnGvudzN0uF9+sUsP3aA/8mPpnauqSrW7Lfzm\r\nTKl814wLhQx6DiI35e5CkV0FHGWUCDApQVaTKpNMQm/x2Ypg517H7EOBnaF4\r\nuUAYZVO+4T7OKkuFMZ/Dk+vvmLk/r+2RgCM=\r\n=Ty7m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"37d616af197248945ae32eb96abd1c6ea83aecad","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.7_1665571353701_0.6480101601191453","host":"s3://npm-registry-packages"}},"3.1.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c07f40105b1ab884f5dbb9754402676a7fd08480","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-beta.2.tgz","fileCount":1060,"integrity":"sha512-WeIj1tVhAZJ45LG5mtTUYKagZFp5n5NYI5PIqXiQUyBKHs+Vw+9ZxKH/v5V53CvH2mQISmaUH3Xs1cpfJSraFQ==","signatures":[{"sig":"MEYCIQDDtWIaDGJmUK8YuUFPtCmoi5fxUI9cJABd8Y9e2HV5vwIhAKlf8U8S2oJkKk6WLmR2jgNETjhBfo9FoLOES62hY95/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRprpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJexAAiAKljXmOqnTb4D06LD8CkN0l8Pi/HQhk7y9IflVxwKM/3v/u\r\n866ZyadlStlxmaj06EZ/WlwJKn+RF9SCTbV3w6OtXHxeErebUgzihwfnHlRS\r\n9VEyZW8S6ebObCxFAydap4FyCG+Pb9Bb5ObK9ekc2pKkAwsyqlSjsJFpZajS\r\nUOC8oWo7iLAUZvk8U7MrDsCt/hC5nKj6hl6/saNPlrm0B4kqDqmsGql4DRxq\r\nITJ0sL2wtjMS7CsO/awgCaQdrUnXSVP8I2XtywFh5HzcbuUkKH0LtB+jQkad\r\nWlOjBRJ7erIj0b9hMRhrqDNd7LITvd0wpI1hAOeDPYgkNmXp+EtGd7KaGdbc\r\n7CXs5MNE3WSrB8wlqHQw2qP7Zfp5b8/Oj4G71oZtFoyK1fNUeNryi0GyXtnf\r\noEoKWWEfc9iAlt5fMOErogecqRUa43GQFRka0Za5RxCIecyl4RmEbdz7tY3b\r\niSbVSR58YpppGnhDpAsQp2nJugvjRsYphVVMe+oFUgClidViuTCsy0aJUnuj\r\nZU6wEj9aQYC/AUiql2SSpgbjJ3eGKG7vZUDetIE9k3gQhiYPmtsw6VwV4PB5\r\nNOgIQ0oUlx8td7b/rHd7/013qol0GVd0zN3U8n7ZOuDX8oVwXUIwIergzplB\r\nPtEvWGY2/UZOQ9RZTYYVPYIko2wNSLKI9VY=\r\n=+UH5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6790c4ee7c0d23ebb3eeab911350d23a5447abf4","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-beta.2_1665571561134_0.5699396664166461","host":"s3://npm-registry-packages"}},"3.1.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f81bf02259ffcba154b92dfd655c1807869354db","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.8.tgz","fileCount":1060,"integrity":"sha512-DiksCgNdRgf9cKhIqvcISYIkzuD+TAqt+qDG8NTX/g8gbnUbEZWdtqxEDWwuWDxqsaMtVtIjDogWbmQivczGFA==","signatures":[{"sig":"MEUCIQC+tFz0J9Wx8DBC/eNtkSDNRwcFztT+2p60QJGXXQutjwIgTNKsBe7hzH4u0db+gGKVWJvbiMBfyaSrvDtdCEz75Gs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRqOSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwGg//UnU284iJG0j2gn1KIxNJS4L/9jl0Po7DjDrTcPXrzR9m4XnE\r\nM0C0HpFT5sFNHFks538Z8Z52rP1iqri4rEkgDK2l+UBztm5EYXS8e7j6hyOD\r\nSz+aDOXtBMeMP5XfMiOoGDtfaIoiZV+LU92Zan4D5XGT95fvatBZ914xuqHN\r\nxvFxhg9cviQApEJ7H5zBOKkkvaM/Lyo1TIeo2xGdjMgSTEYiAHSvguAgRSGY\r\nMt9FHObAxHAsaU362xIGv58bZ7qIQvo1xz5shjh7vJtcO3lB/R8muVj0lUBI\r\njFHmTCjc0yytl0zzdMrREgDQxiKigCKwyKb+oC645YSIZFvyU6/Jb8S0mCkf\r\nD9cZI6+6/qTV8wyOMk0+ISVPfuPYjEjI3GHBKuz8b0nfyNcEmV+u5vBzgOOh\r\nCYiBY7pcWvezU4hIAb1+rC4e7G6HcIO+G044CdgEuo4hm5T5nxrtXxCIGisB\r\ntY0IdGy6YtNtxiEapE4X8njYP900ZIGaWGrLRuno7qvfjAIRRrH0t7nVsXET\r\n7f+JuzSbO2j+YluILSCw6AM7n8DWp0LMlA2UgTk+p6fu1cNxh1V1d4k/2n0o\r\nOewx7CDwcyk2wX7TbmhQWU9GPyO0zXcXty3Cy2/SQc7tg8Ky9xVdekFFPhon\r\nfVahCz/pzGmSmNl1uiH9SsV176eEM4Es+fU=\r\n=UDl6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f2ebf70044d2972b0de287e408c7c612bbe50237","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.8_1665573778474_0.16569692739098074","host":"s3://npm-registry-packages"}},"3.1.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"227e9204fea7ccc79bb771e68fa31c5a93724d67","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-beta.3.tgz","fileCount":1060,"integrity":"sha512-hPBu3YH6WVk38Jq3K5XKAM0mqswlYIipIHKMUf0jLbefuU5uIiZ1SpmpnMWFc08OgbGrsf7EK9UxE+gTmd4ZiA==","signatures":[{"sig":"MEYCIQCX8F6XMnNmc5FYzK50lnZ2gsHywj03WAwxfY23115+4gIhAOSNrXp+D+mK4PoIa1JJTkeuHQCOcTK9J14f/R2M7Aca","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRqOWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFMw//bR1MSBRJq5NgZHyF0eYehReErzU48M3VdC2J823Kdm8BQDH0\r\noWI8fuaD4LHg0QpoJ81SiLVY+ZTOWzD42EmMx1Y1ULf4e3xF9TZzIyPEJPZc\r\nNXXLLLq7EhEsO2fJPgXKaqkZ8nsrsvGFjhwxa9qYWAQENlJlSkdyTXltMMq9\r\nD1B7re1XrYUezdtDPOegBfwwStt8xl1YQOCzYXykuyVx1sxAerLSURTdrjJw\r\nDc9HEvQ5+SWZi8d2iTvxeR1eJ4/QRwhNGKGEDdaHpUcBNKZXKA9dN9PlnlEU\r\ndypMmgc1pI9F5pJx54WJlwoc7EaWNWMJ7CJcMjWJzWQAazw/mGYsp9OqCjbk\r\nwyJpyr3uSYhlkD7jdBfq1LV5Zmc3j4p+5u1KkyfFdChMoWC52HVgMz9ZtHWz\r\nBnWAX/xbP8s/+vhkuDOe9vCYLUxek+fx1E0D19FOIM1pzO/Qn3XBx4WhBQex\r\ng5xCxzjdHygVar6GFe1PXlrCU3KA1CtlEIBx9u/J/zoIyATkmvIOISjFXJ9/\r\nQFUbg8OQxS/TzaasGUBB39LQuqEyu+5v3EHHCMLVg09OROIXJJO+CnjZ/sc1\r\nERY1wtcQi2iS+Udqhy+LLnHw6nwQCgduJWna9Q3MKiK8i46Cq4GTosZCoSYf\r\nW+EgnsS2AaSB15VXMGr4A7ABUYcw8qCTLOM=\r\n=3JfF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8e106620d7688ea08f12edf920889d96190a10f0","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-beta.3_1665573782217_0.3261976086755034","host":"s3://npm-registry-packages"}},"3.1.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e894bd47da438937f8fca4352a0a06098dec0bd0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.9.tgz","fileCount":1057,"integrity":"sha512-/WQsrR80f6uJ2tu1nXgKmk0H8YpEJbRP0PV4wmD9allLcfXeH1Vm8Add7tPoXnnUWH63ZHrkIdtYWu8eLj4+DA==","signatures":[{"sig":"MEUCIDHkkJ3xHqalAVd0tqZDv+nSyJZevJlE5Mwrb/WlEBiDAiEAgCn96ALbaDQz96B0CsDxRpD1go1MwPotZ9MPZ2mtiwE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjTlXWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkjBAAi0wdhWdssl9hGpyBGbsiFb8VIfqIPBXCVJ6SgUsriNVJh2c+\r\npzwksyEFYsbLpqYnVSS1WImjYOhNjgeZgEnOdSrM5hCetRRLuRIxMLo32WJh\r\nlf2/eAS4zbSmFCRmU+JZc8lb3hQCKPuFTlFYwz4szay/rp0hwncT/6blfv0i\r\nassysWlF5RPKFFllu1sOH0O7uHKrEUETBZyqub2dKddPtUj5kjlG9kndOQ/U\r\ny+mZUqsYL+NppKVag4PCZ4A+lqvubZXmEypYFV+TD35OsNBEJHWIoIFTCMFP\r\nKXX2oUuaSaGl9Q1FqosTR3SyOgqu0wzIIaa3UI4nwx2reLk7igVb5Pw7Zzqd\r\nyuDG2Svw0QCw6yFGxKqYXkUimuo0OHep08+2NGe0sNOGh2kVf9HpmQ1aicja\r\n9Z+J0SOfmzqxghrFb1GM32JZO1TEnN1T3bTTCCzPdyVHbhjl07U0anoWefeJ\r\nQ/Yg2hi6svSdKN7oMDTzDzqICpCelTIG4rMq45pnWcaqG+Xslzn5pqtKiPzR\r\n8sNr60UNXANKGQdoNX4kt+A2LqCGnaY3i+kvkmVBuer47nHi64SWWKXuiy/S\r\n+Q/DmlcPZQd9dWi+9cbilzi5+1sSjv9639b2SEeOGCr0+buzfwEHop0aJwGF\r\nl9I2Ub1aj5fvZjsDB0ylCnJ5RsFmnN49eto=\r\n=+KH6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"24677c979bd506f4e6ff65bef9c2c654020398aa","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.9_1666078166137_0.5258922792440275","host":"s3://npm-registry-packages"}},"3.1.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"99ac67ee731e4de26ecab5e25e73d7e8d6eb717e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-beta.4.tgz","fileCount":1057,"integrity":"sha512-lsjOWus9wYLH084U0R7jLD/OJX+1mmZqb4SEh31qe7KIz86KyT7s1UZ0ukazRp742SecCKfldeYDvWgVvWtEuQ==","signatures":[{"sig":"MEUCIHnJz/HsJnX3Rb+7AljjvMeABUaJ5seR0yTgHiy6MvYxAiEApFRSKgQiIfTA+PAT40xGTctfjMPrAJjY2DR1RejW3fo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1423752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT6NoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7oQ/5AILaYwBolg7wuSjQkoiSrS/GiJFjS/RGBkgJ/EjhTEHodxv9\r\nJFXpb5hyDH6BztpCVo/P0fEDWmT/VOZtDQthhI2BK+b2JYKX1p07LoMSuGYy\r\no6ZEYY0rTq+aOz+Rq9irdn9s9A+0FxXHSXPkVrjlKKA69AbwWAPd702tiKF2\r\nAyV1X2aQcRDkfL3DVaI8+sZ0Cw8esnvH4HGv2W/ZAa7yAnRj09/mVDvdmVRm\r\nMMnE6HWNBBlmftPC5vEWpurQqMM5+JEvImnA96DdbTwVkcq1+cg3XjxRVhoR\r\nCfQULSTmf7Ny31vAaf2mTXrVq2O5pMm6S3fcjLipBKNBnccTIuDlE3f6supH\r\nMNuCGsibbzTwa/cuKepj4nkHhb2xBzo/aoOp5ETgco75VVHbGjSTCY3sA/J1\r\nOYf9fBbJjVbVm9B7D2R7RgsNo5ypr6nR7wTIwiX4gl+E+RqXvO+2yYQ0ZVv2\r\neWeY0zQKv5LnQXKwBiiKHN0q7TZ2g/JNhxh1wHjJfFptAG6c85++NR1iewCF\r\nSfTCNTNnyuHQN+U1jPNSiKTx0hCxXxE/+ZWBykE1m13gtLSMHEpXFlq4TgYP\r\nk6RzjfZuigZV1Nw6EPa3VXPhla/7IAeUQZXOnRzjAetdln2pRL2CZhGOAAs/\r\nIbYW2TTzEes6HRsuBR4NRBh4vxNDf5pByeQ=\r\n=b6IV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4a00e9b9288e3f71cf0f0027de1808782983f877","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-beta.4_1666163560466_0.3600020147206344","host":"s3://npm-registry-packages"}},"3.1.0-feature-d68933-l9i7bpfc":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-d68933-l9i7bpfc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-d68933-l9i7bpfc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"268f0a4ff1f42faccaea0158232bb7978be96b5f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-d68933-l9i7bpfc.tgz","fileCount":1060,"integrity":"sha512-QUCBhrByniDy3nKttolGaovd/Cxpks66d2ZCesEa1jPD7SFnQuTQO7D5bvY3UxGFN5sanLibDBZ9Pjfmgng82g==","signatures":[{"sig":"MEYCIQCAdxyUOEViU5R/ime3YXWJXKaBjLOu0iUbIHUFnKBg+QIhAJGaTS4cmMV8eBa5dYJGH1AXHlpfBBx0CNhP7sUoEa/A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUlHEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpu7A/+ND99AzNqqkuO4oNla9HSzR17ast/evxU5IQWB8vp5h3L+kG+\r\nrovx6ZOcr/QSXmQeyxH0GWIFlW5eGGpLyewrwCJ3aQAciJLiBWczrxpLsmuc\r\n6Y3elV818SWu3Zp3pkVw0Vy+MFaU6i6AOrzKcMDMn3NyWEECRErgQNAcQeI1\r\nmgssWccN0TOYI/AaVRNyhswoZWkcTI4D3jGhAghVFYb2G0mEUINFcX72jdRM\r\nNpxUIWclLHP9oqBFAK0iNdcaptaN3i72/IIoXGKTzXtqRYcfyTqxorveFyS9\r\nBnHoX6jwh1YJ4aXUofqE8ZplsnwKq/jRtsflF0JotGvFo1J2Ox4nx5j/yJpp\r\nTmmzHHqnzUp6vz3jWJFLv/AaFXkU9vntIUeffVp8SvY37BDfODw89cUdNbSl\r\nNSt6nD/0BxUKKB/y4evoj8gVvSqK6JBpiU9U3R1bHAUQwfxJInMbHGKeZPuJ\r\nCZRYD5IJD5jXxJdxY60Q3BIPhVLXfunyB1bVdsoQUMmYNkEdZdP+khwsg5GL\r\nKYT/9lE+n0FmS8WniFc8n2z4MbkT8qs23CG9myzhe+Bkty95FcKUJhfH1yKk\r\naHZAySUHZ/uj3HT/abKSMgK1+87Oyj26Fd16t4mjrruwggnqd7iM+t2LTCPC\r\n+RMQ+CyWE6SCk1Zeb479aKWA1dURWWB623Y=\r\n=hM+1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d68933e486317ffba8b04a113c259cedf3890335","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-d68933-l9i7bpfc_1666339268091_0.4585178443003619","host":"s3://npm-registry-packages"}},"3.1.0-feature-fc5cc3-l9i7c5hy":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-fc5cc3-l9i7c5hy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-fc5cc3-l9i7c5hy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e95060710345cce3885ba3da652770ccdd70006","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-fc5cc3-l9i7c5hy.tgz","fileCount":1057,"integrity":"sha512-mYuxBJcuauYWn8vi066BWYAp13qUq/awbR+eKct+0eC2tF2d2WeUPsPUepV3LLLgqmEnoJvKXejK7yF26/WAmw==","signatures":[{"sig":"MEUCICYbCw97wcEtn6z+g6SK3E3S6cfa9/pLrS2MNtggAar7AiEAu/l737p5pjV7kxHlGO2huDPfuvc1w0m0s6+4/CpGSXQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUlHMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3Gg//dlyGbIk+8N9R7MEtBbu4PYyGT0VuGMpl1cNJ37rkxFwAHwNP\r\nVuTp3uA8B9Fk3+kVQ6lr11Bp0l/kr+geTbq+sHUFoSdkVHBZoWH2b7/ETuRH\r\nVKDHckHDn5k67yTeWEGxize386V3vYLPluKkJxU1gcxoOc28mVTxoT33BRUl\r\njsO1+WiY+eUVEf+5sSKIXS4/h17NLuLof4octgKfcvWDWU13QIs44bG3rrgV\r\nYNS2kVCoHr19yT89pDe3MPG6RTidjYXIN4wxrjnsWh0flQ8pkLIJOe7xq3LJ\r\n57S7F4pclbtRt1TiX9PRS8oiQzfFU85LgrJ1aUgaQCsp5cwj3lEn9LxUcZkC\r\nSfaIdCFuTNGfNoGbJ8ptqlgioPNMVo6BNJjoOYcwwkfM5LYEIKya+i+1bHdc\r\nW5ACF5Vt6zjHsnIJrV9xxbCooiwwu8Re8n+T21ygNFDamD1MZnvM04Cu3X5F\r\nzC0Ecjnh/xBE66CT83zKC1MAQCcg/el3yoqALIEt5UD5pz1Zx2KBSb4OTwbg\r\nisOxGuXfVOQc2JSNeG7ivvmuSTxbDdszZ/E7F+ZJqw+/U3NzfQ+ZS8y+stLS\r\nlfLu3L/vt4Kpbn0ju3Hcgj/0d6pp+vmXn+XqOfpew1xo14MVLGnSl5ITBSen\r\nA9ohN2ep3/ICsLJv2mm6Udw+N4xUbiLRx9M=\r\n=vr/e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fc5cc3ea41fdd7cdb9a39bf1f810297e5e0fac30","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-fc5cc3-l9i7c5hy_1666339276642_0.7837332149933951","host":"s3://npm-registry-packages"}},"3.1.0-feature-252436-l9iafmcd":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-252436-l9iafmcd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-252436-l9iafmcd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5dadf60ac3a32d5002a9ebe0c18e87697fc19a4f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-252436-l9iafmcd.tgz","fileCount":1057,"integrity":"sha512-IqgNQVC7TQD5+LsTBOH259Yf8LYJcEwGfqoPKUWnC3oL9H6TGtOdivqGf2RD1NKjTFRNGLVrIro1kAbgm9R0Aw==","signatures":[{"sig":"MEUCIF7hJxgwRFs3cgxYezxWNJDlq1Lpwt9cTAs7BYeGqEhXAiEA9hyK0LoNrKa2y3gJGBV0E6t3r8YzDHClNOAKzdhYKLY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUmYWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/fg//RdkUwRRM+wmCH1gcu51Sq3XO/RDT/HrMRTiPXjcJLQRPPzMy\r\nuPkqthaOd8n8d0OiUX9PsWHBlkoJuj/d08JqNIy6BxYXPs0oCJrI0/0JUYND\r\nsNghjR7H5f+HnvpxbpH9aRVsulIi4GXPhnGNTZmFmMXIMCMG3SJvLlEdt40d\r\nQnFJPUMxYmo25OGleC03Yligbt4epBWbfUl8roQw3bue5MhjVd9FLZ/8DdVi\r\nyVb6Vfgp2DjF8voIJEic8kNVq/ge2vlHJhYLbJYKCBh/Vbl8frMvfrCqb4ye\r\nLIQSLt/Nyj4ycdfzI6rPlgaiF7muqpBXAfwodT+4Gx2dqf05JEinbrzxehi7\r\nGI89uGe+akJkKVb4ArU1nwPMiOIH5GPzoHfwcs3aCwULFLcsbfC0MAAp35T/\r\n2hvjFTzYn1qanL7y96grIf2Q1EpR5sWJlP8UmIFvu6oVODT+Ga4ISnpYUR7z\r\nmSpVVPrND0SAIQoOvj4wVYsnW/Hj2yYOpoyCBe1Hwx9SzlZE32D+ecbxtEIg\r\n1jZ5D2tBXDcNAawB/5dZHdgLpnwWoGGI2Sp6nBsrHV3hMSe1Ly7UYmsbQGSY\r\nyvw9GZ2DqcSZt5UNfPzO+tGevnCEBYjNscme9OMelYSmvwhmpcwTcpomCyzK\r\n61N7Hk3V7az+Mummv0HI5G7MhCT2xmVAoz4=\r\n=Yv5H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2524360ecdf4876f11edb21398cb49b9fdfce6ac","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-252436-l9iafmcd_1666344470784_0.5789728856533904","host":"s3://npm-registry-packages"}},"3.1.0-feature-3fc8d8-l9iemrmf":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-3fc8d8-l9iemrmf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-3fc8d8-l9iemrmf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9b9cc550fca7e7c197fd549e0826a565f6bdee3c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-3fc8d8-l9iemrmf.tgz","fileCount":1057,"integrity":"sha512-nLUeIeCmdXaQuVFiHTTcdbBaJAmwwEoY0FPyYqQEkjyjmQtfXMC95HRUVWbGSyTDGqTiXNSHwVhE0G1BIzNSxQ==","signatures":[{"sig":"MEUCIQC2tlZ1V4KX/6zWCMavqmENk/kRtFlQRN87UhQG0X2WPgIgK5gjyBLS5igypzwnRJs4dCAIwKHz77zNFXZGq82vfWY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1433977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUoGwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpmxg//T4KaYAguAP4YIxe5sx5NA89DsGJIPHlH2zRUYSuf1V4r43YG\r\nIt7IhA7Qu8YPO5UALT9JIi+gM+bRO5uma5lKDeA4CZM/t641shuSyT1YaAXy\r\njKId7OIixRD8U37WRAeTmwoSYz07QoanZPZAIkM0CW8C8JLGMgjTz6D08qRo\r\nDU4nxVyw9STxGibhCp8CahOO2S/iYd7XelbDQGkEv2niFJE34UZZ8Biy/h4s\r\ntrg0CEPHRh2SqYaGpwt22UCX21lveo15WY4Nsz5FaVWSaKvVQriFxNSQxTvk\r\nrswKkouqnc+YzbLN0JEv7I8uTSIOYCcmUn3+xbW3pXGM0sAyjwXQLhiYrnsA\r\n+WvKb8eZyBDr1mLs6jWlIAZw/Oclv4ESEvidwQxtl1zdpqXqJqLmOJvY0kce\r\nLy3R0tIUG+LnvYO5g8l05NWK5v6OP6JFCF/PlW/mXCNA4t1Ge9adRfmqd9fY\r\nypIkPKb0d13qvvrh+PKg8erD26ArfhtURO9PZPMdUwiGRjfBu/duUta3POAW\r\ns3c0XFRpPEudOMR36+k3NqnNAcsLR86VhydHn4mPfn1VBss5GLnLwaYl24/T\r\nR9jYEo/pny8rQ6a6ThlncCDazH2Urk1qWd8vDYWvPZaOA9Q5mfEpmKjHResd\r\nIFbdBEM0zIBFTAGPWPLzdRtfS8VXYm1Jc2k=\r\n=d3MU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3fc8d82efc2e6a1750e3476f5ebdc496174d4239","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-3fc8d8-l9iemrmf_1666351536299_0.8927858359276726","host":"s3://npm-registry-packages"}},"3.1.0-feature-3f2414-l9ifabrc":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-3f2414-l9ifabrc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-3f2414-l9ifabrc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bf13cb2e4e8a2345781191a29d7a6ca482b8f29b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-3f2414-l9ifabrc.tgz","fileCount":1057,"integrity":"sha512-4te7SjrfPCFFS68yHo5/AjCQZVwlO+BHWiDyzlKKFoYP3QHQa+5nx5CZ8Zas2cbzubvPGmRIgAmjGa25dOD0rA==","signatures":[{"sig":"MEUCIQDvIVcjA/C/FFnn7TZDP1i/IlLRMfDnbAErre8J1nB3GAIgNENfIhysSUo/Hqrn5WyXhRzWzdJddUYTivmLtKjvVlM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1433962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUoXmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYBA//UcpzGYu1mnVt4hLwb2zxiK4qhILws85Sddq2TdTL1hWZxJuy\r\n+/rZzimWOkJc3zulVLC8VKNGJMXLsjiq9PvQjzmknOvYBTQikHBgBXFvuB4g\r\naUDjl/MncWIh5rETcT4NTyAcez2p9STYzUVYFYD9E6E6k4nIfzL4m98eqay6\r\njLFAVCfb3jPTjtKPdN8sYE+FdYBGb23Vcc8ysJAV2zbfh6UBY/lz6vTbNmmL\r\nsL8QTIVvXkkX0fIPQMw0HFL043jvrPYmY7AyU7TdPH//9qms8hxs8ZGgo5qG\r\ng4lhC+fiLyWNn11OKwDC2qRcmGeTsBX4pcpPFCEEQLc20aLUkfRQHespuT3E\r\nwz5Vxm5Z6ZWS8bHvhkgrlBWCSkmWFRn8nyHjgje7IQQnbMCOlGynjroeCLvH\r\nxob6kb59SR0noqi08tcb6J1s4R2QG+92RvxGZp8ziXPVPBMLof1ezyNGkAV4\r\nnKMoP5j/5VmVSGDxOFb1pvwRdLtx1v6jEgCWoSBpOjcYGEP9P365wXXRXE8n\r\ncx5XsJ48PbR3nn6JCIdgoU3cPW/g9bEyPIbMfmFyla69Nz7c6s1Eq8wQ2ohB\r\n1ZnxYXe4Tnx6dkJVj09IX7XBPMSomFFzjoRozYwQm7VHPoDp1/dYjqNIkZG5\r\nw9GE33z6HUbLbKfu+kahumMX12U1HYZ1BcY=\r\n=Fy3A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3f24149edfe3eac9aa55625d2cf509bfe9bc663f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-3f2414-l9ifabrc_1666352614406_0.4491281047220299","host":"s3://npm-registry-packages"}},"3.1.0-feature-145a46-l9mfvdnu":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-145a46-l9mfvdnu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-145a46-l9mfvdnu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"28ab14c6952b8bd1ea667d9a0f6e957364e0308f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-145a46-l9mfvdnu.tgz","fileCount":1057,"integrity":"sha512-8xI3nSm4INvZwjy1VZnYp0Ea5RZgAkCfWTg7kr/t25Q+jBsaKmb1v8UXs05CCVoMelp6mrKIxegVIfS2kWg0OQ==","signatures":[{"sig":"MEYCIQC5MtBDDBysL7vEPZPpdYsnVW7QW/aUyyZYua0NcQ9ySQIhAKbt7Gy5cNDG4Z19RCl2jA549vYU5ZM/ZuoDEH7M3Zpy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1434034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVjqbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGaA//YHg7dchBFkG1rnAw+o8w+hUiSAIkNRp+Y6vDs05rzUfdCVti\r\nOsWD0Qyk4UpcZgG+/V9ZHpeyPwYaDgwQ8lfuwmXz+olBYWJepUZNckE8eIYj\r\nB/DVP2S5fIjJXhb+EkVmGYqlUw3d2OwYp381WV112CJFvRnVVqIFzQDp3Bjz\r\nwwGpHRaadDA4TF6bUV1YRa1K+h6Qajxjc7YKsdCDXVck2NhH52W07xNtxFer\r\nQM/Y2u3NPtw9zfLXn6B1QLo2NMhl6q7FkIoGzL5xhX/+pMzB/7YU+8QLvodW\r\nNXcHrYs5AJIr/V4NZRkYJZ5FJXbAq+N8JStW8n1SrsjouB1D93iZcqi/bOQ0\r\nDcHFsu6+Gpci94px7m0zlAj7TM4SlFoL47LryDhqwKLVYwduGJRefeiV/M+S\r\nibV2A/c0cP3Vkh/6hFUnwk/Ee50gVqTBWlxAJTn7wO+bzijivTHIbGr7O5/4\r\nllfHzlFuRFPRNlFQB8knSgCGveBX1skhSbr9CC2Ymis4FtffMUbf/V2YiVLd\r\nEJcteoWJlbVdFEZmginkTpqKnUWw4dU+6KsoWsYVDKUDFI96WpslQ9wX4+vS\r\neUPNiuAWFGhgOtvpSbq0ZSRgkMvAicCQvscAb3Zk6jxN+ohT+AUPBEdheRdx\r\nq9Q8xdF5g6TSJKP9ITefLzesxdkp+v1n6Vo=\r\n=kfmv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"145a465da12e6e01d13d6de0e40d07921dc337c4","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-145a46-l9mfvdnu_1666595483381_0.31018733975168233","host":"s3://npm-registry-packages"}},"3.1.0-feature-c7a43a-l9mgjmp6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-c7a43a-l9mgjmp6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-c7a43a-l9mgjmp6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2a705413e9fe20c1b7ae2d79eda8768b9d5f2541","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-c7a43a-l9mgjmp6.tgz","fileCount":1057,"integrity":"sha512-VxfFc1Cp8BYdMwJBrBlv0V2Biy0hBuCPaPhhWekIc8OQDa3P5xaNlDc4g3DDxjWHAtZ/E5J36F5UJ8/vuduBIQ==","signatures":[{"sig":"MEUCIFzoLiDatteBlWRjoZ/0N50LhK7xPi4gGP7cu5shMz9zAiEAmNsgiYZM+Uwp5kqKFT6KfcgH0MW6ZUm0K5oA3r0vzk0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVj7xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2+xAAnAxNs7cO1m6kq1euK5LGv64A3sg7/HIxaoEQ8N846qTRvkS+\r\n1vpebe3ploJwhgNq39dVmbkeW+J68DIlcrHLgUwO5o6UrCpMzzpq77DqRRio\r\nfn8ee8aRIcnMw7GM6ofJhZktlfj/mpQREv2CUP+M4UZTUafeSXMXeQuJ9CRA\r\nUPsOt5edp8yNKocM18oZx9mpG+gKrsJ0MixBnT259hm3+UuIFBzEHLaHORAq\r\nk1vSsmWN/43SvQoezbL/BPfg63Q0B2y3Cekaufob4PlgXTvGSxDDfXKf6CXv\r\nh4g+klAM0Q1K/IPrV1lzTtyjBDmg5fH0MetkrTpvamRX6qnwrPI4Y3dbnSE4\r\n0i5uzRcMYU2uHi/1OpqU1mxbr4tfnhaKizvbn3U6sFDwTfxleWTOeLmcwG0Z\r\nr9wJqh3fofp0k1PN9ulZAdW5SFTAh7ZWmDm7aDwIloadAxc7ow3+YM4uze2g\r\nHWOBszIS1N6LMlriSh1cLFiPIADxrPniZOf9J/4Vx0cx2EKoSfl43h/Ng5wM\r\nF3tJRuB/xGiw9LRQZ8JanBUOfAAU5ZldMp5igaTms0QAXl9BLSR4MgS9hwRm\r\nj99tBg63kXaJPiJZwQ9pD9G0kjqVWRBvYHuRX8PPJztPPZaqYMJL6L1N06zD\r\nJ6WQTn9mGx05Lfxk6YL6PbJfdBjESL7zYjw=\r\n=AYf4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c7a43a14969a7445449bdbebaa33d34a6b0db43b","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-c7a43a-l9mgjmp6_1666596593091_0.09334883052057896","host":"s3://npm-registry-packages"}},"3.1.0-feature-82572f-l9mq8xuo":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-82572f-l9mq8xuo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-82572f-l9mq8xuo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4214ca7accbebf77233dabc86bcc6d9a074867d5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-82572f-l9mq8xuo.tgz","fileCount":1057,"integrity":"sha512-DYnzwBm9EvnQgcpuk5OcvQVwENSxkhLj35I5MhTRIDOnarrSc8lR6TW2oyrXcJFkqOT5HPRJSro4uko99Ij3ZQ==","signatures":[{"sig":"MEUCIQDloLPe7XpVPrDFqg+AIQ+0QV+y+pSh4TCle5pRWFm2QwIgTWQQToCr3x77sDrF5goi8fWActL2Hijbn7IIiBG5hYU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVn6mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYfg/6AiEOC2cIZVVIOXtC1aK2xjch0WGFDdp3M4NcmS004zzj9OHC\r\nvR/K7LsVu8+6U9xaW1bEj1viw9RqR8c1ttPw6uI58NuOpzGsYWH41rK7GMyx\r\nXC8gLaKlq0IPnZ9gtZpCKOfIvVaS7v2+Cfl0wQiokNfgyKJMNOnhUIqxs4FA\r\nys45IUp8sxIBbP2gnx+MN99gRAwCqbwM8xWlLewjY/pd5v+QncH2PuIRNVkE\r\nwODIRy9z+/0mUlkc0w1lCgdJJF3pxpwlciN7O5iW4LoRkscnGeVhhBjqGhXt\r\nQgW3EC4pQYKk7zOREL15MlHAD7ax1CtzFPZKFziQeOmy6v2lgP7EfWSwmL5Q\r\n4rjLkbGloKNfWOCq+KzPCbbmkxSE5QSa8H6pA3fbdV2Hs/jtAp3gF4iYa1Ut\r\n2uomtxH+Eae9g1MAn3FCdN8PDN4egqf6kztHKhc+HDmw8RSBM/FsLVuIlznz\r\nqMVRVseT7aYSpj+ZXNfYGVs+XKVs3MHOmeOW6hEqrJV1QMbaqYhOkWA+UZ3J\r\nMUjx4lMzrGaXRAlDwwyUIQsEuwd+9AERYuLkyZqLOiXZXqfP7c43N8pW1UXY\r\nkPswGqtjxf9A4iX85O8ErTv5FHIj0VISW8jM4+HSG9CEHere+uSGl9ZI3a/P\r\ndHyN/iEHFeaCwNX/WQsxvxu3hyzsvpburho=\r\n=NSOh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"82572ffe2c2abb6adbcbd389b88bba0a62c38d93","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-82572f-l9mq8xuo_1666612902510_0.8521546810433325","host":"s3://npm-registry-packages"}},"3.0.0-hotfix-26e82a-l9pn0d4e":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-hotfix-26e82a-l9pn0d4e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-hotfix-26e82a-l9pn0d4e","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1d80a71ddc50f7120b765fe27c5b460d783a59f6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-hotfix-26e82a-l9pn0d4e.tgz","fileCount":1055,"integrity":"sha512-7Hj6rBh3nrBCkQMAkIvK+jYQZ96/vNGQMYXVy94CW4iWQdR6QNH75hmPh4hSGeMr283K0PE4Y4mM8T4mtPbaBA==","signatures":[{"sig":"MEQCIFBU9idrgb0ecyrIDQFP3PMVxQJ3exPQQI5HA2LU0fiGAiBUucF5phNuVx4S16NNaCOz1stcRVM/zL0OvxdANMrk/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1790330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWS44ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpluA/+KdWil+jutdg34eQkhz7koCXMiDj4nYrnixGBo2dzb/tVZoz0\r\nbwAvy8UXwaY212tNtURiLa2iobfKt8hopxrbFzmMLl1fXz4UCLP448dYHPL0\r\nA1DL81T/JuVIM0ouUU2ssCKBSrJLU/tw5DVKHPW0PaECDmAg7imu++Yx79BI\r\ni6USxbP9OIvz24c2fqiZaHSpKypewcultUh+wXQi875D6IUG09sxLKxJczDc\r\ncuMMaLIOsjIt83c4Aev5WBTrIRozBhjJH8S6E0h3vzNnZ9w6WKM6a533Keua\r\n5DuJGrD5akg8Ow//tjsUVXMFXfgv71p/N7TlkJ7QsQKvOhP1zLAYSLmkQLbT\r\n9ybMt0M/Lf7cCIk65sccmf8qqamB5oy//Yl3J3kcukrqCXkUDXd4sQoOu1+L\r\niYoWWd1UF7xVd8bsBEKCjMKC3zFtSdCXYUV64F3C6vL0icKW55b2mJhDM+8n\r\ncRWY3kL1OI1Rxx92CkMVx1LLg058Wi2e0kGJoxFOI6An8NeWBib0V2JKiEu+\r\nJWkW206L17gobl1ikS/QxRvE/1Oo1N5n4q8PbIEeKVklXbS6c2Mz6K/RD/Dp\r\n+chmhKVBAvmg6y6HrtBaM84w/92zfMVQibAX0CosJZ2aZI6KtjHY9XkmiVnJ\r\ncsZlHDtkyjD/pEjWyKn7M6qRwlUmQ4VfSKw=\r\n=K2v+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"26e82a0ba5a67be06fd868224e8939e1fadf5769","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-hotfix-26e82a-l9pn0d4e_1666788920463_0.8034932835997861","host":"s3://npm-registry-packages"}},"3.0.0-hotfix-a6ef12-l9qtm3yt":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-hotfix-a6ef12-l9qtm3yt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-hotfix-a6ef12-l9qtm3yt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b3a7b9a0e4e3352bc804e4eeae159386db1298a3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-hotfix-a6ef12-l9qtm3yt.tgz","fileCount":1055,"integrity":"sha512-GPjsZyrElfO7bXVtWnhedYOfuu2vQB/FkVgv07lSWIyIvBQsHtqrmP9t8l8wN1FwQkkKf5yAcnnGLKF6KtEPbA==","signatures":[{"sig":"MEQCIEfmBWW4P6xf0tJ7Db8B7PPwTS3D5mukWFQId+KGBHhKAiBkSzOuJS0Wz1AfQE2gGNweUPle3VxuprEHF59lHlBeAA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWkXNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpncQ//SoMDj334HP9zSZKu2gsxKL6Um4XcLIMi1frWfL7/KiGt+3g5\r\nM2TzO9BlC+DcvyM1mKLNrgxmiGB+b47kpriY1/UB7/Md3T+urBeqhCzs9DSK\r\nZBWj7PHpMD9b2+j2QvG8ASC+h70kmmFJu3g22mr1q9iuPuCHPQ1PunyrIUXU\r\nnbfPT0j80NiSVEwP58E3KGStycjlBHa0RWjyfbVQORUpq33yKkpKBkDXvj03\r\nu09rJzoeY0x+u6TyiIW53a85zWWHTE4HZY+y1blqjc3Yk5M+1lG6tSFulhhY\r\nMp/2H7GoHP9RolzPMkg9f64QwDEhTv7qiudmw/bazx++lR6mVc+ySNOQHcOD\r\n0wWH6Y9IYQplc5ZqUFIbH835hv8BC6P57Y0dvWHe65pOB+9VQ7/zoyKYpDcN\r\naHS8xyzqqXuOq0+pinpd/Ux1nyUd4ogdRAtAhxbyVWmng30VwzNa6cJKEkMa\r\nICsIn+nkvcPi2Gn3XkoMID3PBCtxHbHxwT/uWvoOeeEe6QYgW5XkQvkH2lrr\r\nlJHB8wnzlDz3AtWcStKqmRwluMmx0F84af4hO1Xc9e6DM5AsddcoD+ZAR3Pi\r\nxhDRdRx3c1Q5kdmjI5Yd3oiF7ZCxT+EEa/dD6xWYUncQc/eNZ8HXwpIU8OYI\r\n4qaSK3DriWHZjwaJIbwrutqNYyowF1YOesk=\r\n=zjeJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a6ef1266d3ba0c882ae77391f84c54585ee6f664","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-hotfix-a6ef12-l9qtm3yt_1666860492976_0.7503648386671735","host":"s3://npm-registry-packages"}},"3.0.0-hotfix-e8caf6-l9queu8t":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-hotfix-e8caf6-l9queu8t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-hotfix-e8caf6-l9queu8t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e49a15838043983d2452df19cadcc96b96a7ad01","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-hotfix-e8caf6-l9queu8t.tgz","fileCount":1055,"integrity":"sha512-wfoCMjD9QtVf8Exuhk/J/3jTD3FYnV4PHBZEtXEREXJi0623tmkYqPidVPKveFUIY/QM+qH3yBzAghO/A1/cyg==","signatures":[{"sig":"MEUCIGgKi13VmiEjCR1eNmhI+qQYtarKnT5Vxv+a79iYUbqWAiEAkRJSqJecHeq7cjnKa1VONOBA1ADITvsCTbNfTARt4aY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1789648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWkrrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmbBAAh1Kdxi9daTM+gqmMM+HXM7vi+VV3XTkqBptcPq8nP2Bww5qv\r\naX9MFcQ7hQBj7+e/B4G3O9D3nnTcOxVzpaxgYvCJWbq2wraRLtuCyczrHaJS\r\nYQ2+EHa4fm9Ea/ZfuWPKsIFnZMIHm5llvItvUc1z0JjxpxAmOjHtbAkB09r9\r\naW9f6ACZXM8nLVAfPgMNm7934aPwFirVhLPkrBGTg7KGDHqO+QbeTU+g1ScB\r\nhiN1Sknf5LU+6er3k9v0FSuybvC/TMas+vbLOtgGAZ9lLoVdD9HDmoI6QohR\r\nJetLP2CzFMQ+aUdRryCE1qyblhmc//AfWAezSM2V4+b7z231IjLhe2v3RlAz\r\nMiIDaCS/ThLLkSIpDTwOLTQHlVYBQeFV8RkhG6QnLenlUlXkIJHBoFb696hS\r\nOAGd8GSWMq//yCBIDkyIFmuScQ6AujdC8xKHinh0uMZBbwOOn4KN4osKxlzF\r\naGI1T0Z6Tonw34ujnSw3lX/9kPxLPqSqffpijjsdiBqLSrNW/B0iwR1S1q8V\r\nTsIl21WtBrAHFcKrG7BBTgsX/Tqy29pfb6mjd9PAIDOFkP5rE7ekzaINAhki\r\n/UZxVEn//IoOZ2w5hwY0yr6eXzsddJ6O4+kSCMnjQmx+ft1wt42ztjiaL00m\r\nnazcQoVXSsat60/25vwXjzcYxjbEmwk1apw=\r\n=vQEU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e8caf6a322a3dd0bdeecc4d6e64fbb44a0f1623b","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-hotfix-e8caf6-l9queu8t_1666861803484_0.49655760914461244","host":"s3://npm-registry-packages"}},"3.0.0-hotfix-675c7b-l9s5ke27":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.0-hotfix-675c7b-l9s5ke27","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.0-hotfix-675c7b-l9s5ke27","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"34b06e4941cb1301e600f152c2cbd48e1ba5c526","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.0-hotfix-675c7b-l9s5ke27.tgz","fileCount":1055,"integrity":"sha512-ofwLC5P79e8LZr9GpEeLGPWO2mSqi0QgP1DdIF4K14IM4swgg93fP8w3pJBBvbY26+7gh0wQtAUVAuim+rKpJA==","signatures":[{"sig":"MEYCIQDkOietRu7pUc/IrCiKQJinwMEXHnvFd8GkH4HyynlY1gIhAKu7Ta/omaDAHDSSPpxLWj+OObZxJ2GeVOH1mwc+CGes","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1790070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW4BoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcpA//dO4QxzyMNcCWoOTzPXTuJVU4wxjul0eviau/6FFuM+S+viUB\r\nRVvcrlh4PpgXhNORTxyh/Myec6YQkdhhosdhe6em2nzorV3Wsy3fGV6myNiU\r\n6t3t0nRpO0Kw/isFKsy6ZsS8U25LdgZ/VgPnLib+N1QTzQJYlaDAJdoOFslX\r\nm4aGcc2Gizz9eXEL/iCU+u3/0MQ2qzZh8OiMFRQVDU2KhVjQTmGbAMMEL8oQ\r\n6Y4tihSfakuiABHILykqkkJExF8VEd2SUwl+sHWAbqFN0FHkuN0pF4D7zQDT\r\nBFRzQM+sItF7WoQZeiKKl2Vtwtw16vKmr8vilKB+pSmTBax58/v4Ez/58s5c\r\nFLsNFalN6MIV+/iCgSB7GKtwiCOFWljznb+3NLFaRspNfGO/R03zfCe4Vay0\r\ny5yHVsYutN88ZVEj35lUJzSIOxyE3Qgl/8jj9d0c9JNuSTz0xghQknGLQ4xj\r\ncbzOjqncxEpqObzRl1SgWYhZsBx03Rcqxt0xBz9+Oc7I+D7oaIFVThUgycrP\r\nTjqdtvo4ELj40iCxG+3ETQdu+6hyUKROWoGf/dKZvH+qh/mnTDQA00sr5zF/\r\n9lWObdddhIexzj+v6DgXhqApz2q4vatefYbyO4xDq9f6QtUC5xqxaQOoHI34\r\nlldGKnwu62Fp66mIFkAYKEBmSMKycwJYYVU=\r\n=YmHr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"675c7b29dd518c4cf081ec7be16958872ec6b483","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.0-hotfix-675c7b-l9s5ke27_1666941031974_0.6660645119097364","host":"s3://npm-registry-packages"}},"3.0.1-hotfix-cabe11-l9set3ew":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.1-hotfix-cabe11-l9set3ew","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.1-hotfix-cabe11-l9set3ew","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4b26bfef33874970f90b57786a2e7865dbd801d8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.1-hotfix-cabe11-l9set3ew.tgz","fileCount":1055,"integrity":"sha512-+Fmyr0YF1PJn+ztLs2uAszLPcpyu6bj1Uiihvz+E1TKPMp+t/rNmbEbEH9nhteDJhVweqS+r14JYwiFg/+pihg==","signatures":[{"sig":"MEUCIDwMi/Qp2AdvuGyWFPTUhVEBN43dLsV6Wdi0SmHdCkM0AiEAkkPTAp3bYJpieIvXCV9Wcy3M5QF3Wk+UD1IIIZBy7wc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1790070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW7zyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosTQ/+I1p9Fa70bjsNGDRyj6wji1lAQvZQ4MvkMf8lfBqV1GqBP59h\r\nXK9G2Gh+5puyfmEzAGFtu5EjakbqBFsmhhztW4OmjcvnLx9+QXDAtnVXC9gq\r\nimaUXhTZwS/p+ZteqjPkoqJNdzxzInXfZL2iFuY9NEBGar7WQ52qBFjamfwp\r\nZX7iYJL2Kwuf4k1qei09ZO5OdglfnaI3rMBRfOHkpXymsI16mjhVShZOyh5K\r\nGSwdXWFQQRgOOT+AuFseyBH2+kHKNWzDsKd03jMruSfv+NZyk2fA/+Fm4SYP\r\ndLvyutZG5xcz/ba44/FLRfOsXOCBhiNb5GcnEi1BUg052mfvpQMVybLCcOTi\r\nQ/2YWnOEgGji+V8bas+oa3Ir0g9+G+UsTHavGr3ynLlW/sQl9O0CBfxCXWHy\r\nI8E6j5HvMh71ulgEW2BwnIDVUbA2ugumAQK+COciAhgt5B9WTEH2JViG4sXO\r\nzcDQmbU4vr6R01/0RwOgwrMzfm5+PRo0y08ZzxsGb9Rrk+varjhjZdWq6z5c\r\nw4tt+4I9QnPeuwwyZcaLvbbGEy0PKNSlSkOMLjNfGkSlHetfeAhvWsJ2PzeD\r\nO3dxguqI1CHsCm94xgjIA0C+gOvUu1Q+a/XB8Ho098KxnMjRypwfd1I7fWqU\r\n9sHh1HhYjebCvgLb73lLkv/DvdSTLlfB5rs=\r\n=OuQW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\",\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport {Engine, EngineEvent, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n\n```ts\nimport {Engine, EngineEvent, LogEventType, OnLoad} from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: {result: 'token was modified'},\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cabe11bb6797102a79bb9d2174e1a546c5bd3925","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.1-hotfix-cabe11-l9set3ew_1666956529804_0.04188793108090905","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.0.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.0.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4214946806ba1eb79e01a788eb39aa0aa4d33fff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.0.1.tgz","fileCount":1055,"integrity":"sha512-1YiCUF6diN0Ao92SBENqyUi2Ez2z6Nz/1jE7q4KddowLyPcx0HFgOlQjWy9WYrP/9n+vahujkJrkCIJgXODwvw==","signatures":[{"sig":"MEQCIFie0+a0vaJ0JaVNjE86x2dVvO3hZFNrWwATYAP+J4joAiAB93Pk9W9UIzL7s4xnetePiteQFBoSQB4+rayMCqlsNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1790047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW73LACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrm+A/9H3mQ5oJHjFtXs9A5y7K4Em1QOE32ZGmmaWSNtRZ4/fcjHd41\r\nF1p2UHQHgyhZWy36U7iJXJ1ChJNBZAcy81TkloFE0NHMbVujGcaZ89iQuISA\r\nVtiT/fyQGnL5/06IwXyqn1ike1Ur7KGmM4Bgc8a2G34q9C+GBDPuK6D48ob/\r\nmy2GLzBy9p28I9z/+b1Guy9QXXgP51Rb0X+vxz9/RQ1c+BCOC9ZoDlzDIquM\r\nAShojAkeq6J8aQqivr0W6KP+SHDBdshqbALTx4i7ogKnuULBqp2ti+L6tRGO\r\n6cMJkAJQ1tQ2MayLklu6X46hTjdOTF8pewNVD8UZuF3mUyW0QxnHnCC4MWAM\r\nAsvvut2BHU7cQYfONJQ4kjhKpDnFNB1dX2WwMpJUjyvZ2bM0HEzCaMIabdmJ\r\nn2r200jy9iT2WW4jTA+VYTQE26ocgvKgklbzWyr9uUz2vzvPzo6qP0JHZc/P\r\n4drFCg6xyhLuDIX8jJl5aCveeXkmZgW+avPGx0vUqKcD1rdKMOVPoPWyss4q\r\nSBrY5Mrw4QYfuXkfMb1LtBiwXOTmHl1mjlKnQguJc20PHyrjOOxC5bL2+wia\r\nBIl5fwqLN7mMBhuug6iXbwF871ckaC1N3b1cmzcKQ6guxXyUx/fHi0CA4/0/\r\n6RPBiMy03XEeYHKBMMq2DMRDy+UppWSiRZ8=\r\n=QgEG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"69f5054e02fda3e96f0e6b8408a6d4d8094cc80d","scripts":{"lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build && npm run lint-fix","lint-fix":"eslint --fix \"src/**/*.ts\" \"test/**/*.ts\"","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/*.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^7.32.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/eslint-config":"^3.0.1","@atlas-engine/fullstack_server":"^13.5.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.0.1_1666956746986_0.25967491507859775","host":"s3://npm-registry-packages"}},"3.1.0-alpha.10":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.10","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.10","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d39798688ee472da1ada263a63154c0ebb7b90ad","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.10.tgz","fileCount":1057,"integrity":"sha512-DEptKSxAiKP4mpAHT3wcOhTfkcsiyAChFRoXZraUV/KSW6dOtg1B/r3u5tUpksNLaJAQPev2sWSrYrxUU4qF9A==","signatures":[{"sig":"MEYCIQDDYCkmYpz4kCEIWjjgdesGaPH+85hBIAsyw3cy+Na6OAIhAIwoYcpSo3Nk2BJAIqoQNgArKuAaSK9Lr+6yGl/xezNn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1425177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW8B0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmotVA//b8MZSY/jsGyzEuQm0l1JmbiFV++9CqTYig4rB76torYOHjW1\r\n9x8HDf4iDQRlrv4w36ms4GVQS6fliUzO8rTzeT3xZRSbPTyRB97alJeQEAE0\r\nmltIEiqH/rmI5YcS9HS2249z/Z5crqzkwSrIN4vD5L/sonoDAJ2f8RJVneon\r\ncC6/TmwGMKDdj1zXfGhdrPV6zUierxdkEZhIxuk+KQ+h6Zmn1fv7MYYq19Lg\r\noWVM3Shwwce7hgAnxUJmJ4smB2njQOonUM+FDdgygsI24F1j3L2i7mT/0+nF\r\nVelKCCGR9GQwMr4wQkNVrReTlbrYFMv3JLgGDzBvG7FS2v7mSETkxAbz5jqG\r\nodktgytDm2VwaPq9GHuMEkUZBolA0+e41vQIUtOzWwqiAEwJjk+tTf/W6QjV\r\nBN9ytNGtI37VgLcu4Rda9knEMdWG7nb3I4enXniNT4/k0XBuoxLjbWnBn0FF\r\n31zI8jaiOiUAab5P+uxUgFBaIxLSGt6RIGqUXLPvfbku+UKFYUixGJs7OJTk\r\nP7KPHVBsQjtPF24eNsDoML/AcXMBzgmHZXVCt62xDeM5XB0PtIz1esANNLz7\r\nuLrCbzBqY4IAinMTtw0AsIdI3Ipq/hsyloEIwYp3rxxtKOlQouMJn7VC/+Yj\r\n4gHbunrJTRMe7CKRugpO9C6qjhdJmjwcDyE=\r\n=zm02\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9a552429aae73c67f835a28c9f3da3ce58d21db0","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.10_1666957428344_0.5534703973704229","host":"s3://npm-registry-packages"}},"3.1.0-beta.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-beta.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-beta.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"960b67298133fdac961cf3784aa438d8db4303ee","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-beta.5.tgz","fileCount":1057,"integrity":"sha512-0ZME+6kn9DsJ68vKK+2YNAwl1cXwjppfRXwEPMiLYLK53BucXIHIVeoWKklN3YJ0YVXj0+bmwEzcJJZ7Uh5yng==","signatures":[{"sig":"MEUCIEs5QNVpJrPcjoedQsewbdlaD0hcOvH3IBzAtjikxZLUAiEAy8hQevd10rZsKFvnjbwh9p95MM+LErekF9989XH7s3Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1425175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW8CUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/og/+LSXQWUawwBW0+gAnLjncwAw1eWx6q6wQybqBPCoptIR2qaBm\r\nZxnlekt+hSuk+G5uZGy29ZrPSBr+Ez2D1U82SW81o1EsSw1TdBusyNzltUPU\r\n1zt4q6w5YscVaNF+2sNpYoSo4uvm1mZWu9/MLyaxpZe+jreHCmoSTR3Qc2ft\r\n1N3nsyxh4lP4H4ShJKej+fv0pPzvyOG2oiKqPa1MmlPMEKSTfCOFkX0Fo7if\r\n5JnDNtbPRT3C1zHA3I2cgolD7wgu+3Byt3GoJ/RzZAkhgKHsbdiIKDE8cQwZ\r\nE8hHPOkpq4cpF/HL1HZIE0MGwkhpTBijkpduuLO+Pq081+ilM/fM4MauNKUL\r\np53lk0dN+xqddaCIC0bWVsLyBrzioMl3gUJQbvzh86wKuV4rbE6YKRhVTtpa\r\n2AKAfXt14hBS0uFbuY0F3tjgRrhH3lvTlwZQ1pd0dr7Aj2s4Y1yPqfe4TtGQ\r\nsOfxR1HK22r5HSPof+R5xYsKETLdpDLsk5zzShqbGMs4LHTTjxucvMXpFrcA\r\nrSnWwiHbnR9ABhoYGGhDCnx/l5n17dkW0RCUz1SHoOr3wQjmUMIBuIKvE7dc\r\neLD6fUDktFb0HkJ1NnOi1edA9gPhO8Fyflh9KZPuiJ8yskHPFBh1jnBEo4rH\r\nz/h+oF5wEV9dDOQOXFgl5c2R9PBQB3iSc7w=\r\n=tYbh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0e809477ef52ff2de62e148a908340077df87ae8","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-beta.5_1666957460248_0.7943923517336859","host":"s3://npm-registry-packages"}},"3.1.0-feature-769c09-l9whs7xx":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-769c09-l9whs7xx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-769c09-l9whs7xx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"67db3142c660884ceb1de0ed28ec60d7cd0faa82","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-769c09-l9whs7xx.tgz","fileCount":1057,"integrity":"sha512-ZC0JOjg6FHFFhdnmptfpCAeLTCS/7U/JHeuraNrQ3pl3la/ODKf5mAViPjqsdOMfTtzpZWDV3OFZYIBcRwauyQ==","signatures":[{"sig":"MEQCIC8ZFvhkpeMqmLtQQtYSf7V634qtlBk8CPBjPn0G57+dAiAXe8V0jyM7cpdYb0nD8WVR+R0TpZ41VJFDX3WM+RdN6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjX4EHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeDxAAjOARvH20ilG4xJDCcgHXUsIExX3iIOIuYa5YC4WIn2gX8IHI\r\nv/ddN93N9lv7J2rjZsgxln0JaggunzZ5ZW+u9NnhJyYIBhlv/gi6IjCFLEUs\r\nT/ITYYyT2Eg7jYWnR4rgrkUpMuK9XaCNBVFkiP0SUR0XkfNyYPDKaBzAMBKR\r\nNE8pS3FlWWuHt+8pPXmyGDsG5BuHYdPZzlXqACYK3Ego2ua9n0RUP8iiBkCN\r\nt0xLsXAEhVDZaqvG1HoQ/8+1DWLCj47TLV2jHiedfiaF+Xxt7NUvM2buGl13\r\nzwCFg3wvA2S98gCG21tQam570O1bV/jqMK75Wc4B1/lo1j7bLo++KTKRFnY+\r\nic4V1fJZuBMOacmeaQG2ARGt2IHWb50VjUhb2MRHL/GhC4UkeAgalFUcVjo+\r\nmz/cWOSPFSusIffx+ka8hr2ggDN9Xn70X5wSXhnjnefRaWgYXymqEQ8kkhiD\r\nWzvhdUBW14JNjgXN/ZqGJeMWN8gC2vUCjmaDR1FCgIfYVBDVjvesGw/zgP+w\r\nLuMAsDUFV3gZSFCClouThfNgl/ocAWk4v1T6yi5bQBjUT5MkI60C4MzX/AoB\r\nHjcz8ElZfv3TVlitpWPXCcD/UnBFRRlbqO90h7jjvF8iWFDmaE/woNayVzuw\r\nueUnD9W+yxwTW0Vek3TPPnTiWJ85RcNJ30I=\r\n=PzJS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"769c095616e4a3a29d8eb821faa97d60faf48c5a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-769c09-l9whs7xx_1667203335574_0.7825947396267021","host":"s3://npm-registry-packages"}},"3.1.0-alpha.11":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.11","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.11","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"325eeb8800bf7b00c031718ed0dc25bc025939c5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.11.tgz","fileCount":1057,"integrity":"sha512-uVa4ecw0lDkaKcRKDiZiM6IJjKCGY1ZmJj1k/MwKmB0uh9u2URMZYnty1vmhPNWCGT8lznXINYOOdzWmzpVW3A==","signatures":[{"sig":"MEUCIG5zjGjoZYsmin3bhgTEraoROuXi7KYk6Ek188Aubu6OAiEAi2fbboE+iQYrteYhjKHoJzkp1mEjf3NXzuEah6PWcHA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432488,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjX4KXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJEQ//cY7dO552xp4HThXaN1b7se1WUZc5O6UbJEUEL4VwtRYOjcCu\r\nYToNX7d55K1M8Pf42gi8kNs7x2+ng0K3NFa4zoN8hrCZ2/tG4vpjf34awpBq\r\nJ8B9iS8QcSPZ5KluqUJEj3rxAYi7mDZ6gWexclo/Adi5El1BoOxgLwdu7oNR\r\nQSUx5g3VMTk0A0pj2ZItHHhMWbq7xMK7MBwWnJno3NKBki4AwDpKaHq3YcTQ\r\nK4Gm5mL+T+wN0vXCfxrlKJ5gscIEVpBdmhitCfkyR5O01iA8c27XftZy9guB\r\nEzFGKmSJtfINzabpODzOn5N4fJRk00sUmXk6o39NwqcxqM9wt4SEDjuKiscg\r\n5iwtts9tILipdenpT/ciF+btKik30zqSa89C81WYWw1KrUK1BFAqcUE+G6eq\r\n/mYGJYr0G34rVnp+Vh+7gjhNarcn+qHq76Sy48E0Chbgqv602PyQ9GQEoEGV\r\nYClPDpfD1aq/NsXPirZyg66xKS6dT7MTNKlYIs4xxVHAMiUv7T3p9nJ4dvZz\r\nr9AVMw0XAjYQ5rwsZiFGf+nuGM9x2+z/Fdg+Ig7No5ALgLj+VmLuYutSu2CW\r\nyc5zyWBQJBrn1sAF5gwGtZiXUQ0ShbfJRgc9HmLx+xT8WrGrSiePAtqEpjI5\r\nlKdhpuc4bOcOEOcO0v6HAsocs5NVplP3ZGA=\r\n=yg6f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"afe344b291e69a2906e408b88770651d8d94e29a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.11_1667203735257_0.22502760378066644","host":"s3://npm-registry-packages"}},"3.1.0-feature-f96378-l9zfkobg":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-f96378-l9zfkobg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-f96378-l9zfkobg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"171c0973b10943cfd9e4c91b91e3556834b6d1f5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-f96378-l9zfkobg.tgz","fileCount":1057,"integrity":"sha512-j1sppxnmFqo27/U13nFMvJrnK2NpMclTk9n0vfnWyClEAnONt7X9eNlQFGmHkl6xX9ZY7I2/VHEE3G1eXB96Tg==","signatures":[{"sig":"MEUCIG/viR5fKI/MjPN8G2S4ZBROwc1OViKyliMxvO9C8d2xAiEA9Z2kEg3BnXVaTdbjOSkhrpv9MWHL8Whx4VfY36b6AMQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYjcpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtvQ/+O5k44O7MzNZZ+zMRYKiucQlegxowbxLyK1QCAZxlcvKdXFQX\r\n6dyjoHyT4+8pEcaJ+bXPISVD4mcrKHoeRwrvTD8zpRk1hWLwsuP69pn0d/AL\r\n0fX9KsI83tCAHkICrWYfewt4A4NXbcVuO6zX1tuz+g98ei8U83ua1z+phAKv\r\n6dWaUexuwd+15W7rlmRumssX5r9R7KgqIee362Zmil+5Svrrea4G1wiSbHKr\r\nftLYvwWVSHpkx1qW7GQqjRjtk48ZK+1cbP5DByKyQFxk6rEqWLI8yJ8/c2T2\r\nStEts3FLRQGeyPZt3mu9CsZKUcDiBj9rh1hCmqKo1EjgGkuKchu9GfwPnq8w\r\nujrZzsB3+Wj0wXKrlImJDq88VYzr4Xog5KMNQ50aQTFWJILc9Ri8wFFeAY1p\r\nC+ln+qKiDynTsLRvOec7JYM7wryusAbJYxnLS5vHNiRXvO1zHvx1TOdcjLyA\r\nGPm7PnLukTLAUQyBNsQHbUQNzIFKmvmAtamnhPQrHXbAyYfAxLW2E4wZxevn\r\nDemeo0M/eA/Gd0odXMTwbKi6P1hDBWp0ik4VGYZnGZ9iRbDE+GCtwXSMvzSR\r\nEBmGYs1ptmnBSmaRr1LORkx4c5/TnLL0PdxSxvhr0+oU0ITaalPBazyGoquq\r\nB6qsmzCOTN+l+Bk+Zjp1lVJEu9gyCqg1BTw=\r\n=kqTU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f9637830774a743f903121c302606ca0c8634be2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.15.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-f96378-l9zfkobg_1667381032835_0.03177380433951149","host":"s3://npm-registry-packages"}},"3.1.0-feature-a5b498-la0u1z96":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-a5b498-la0u1z96","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-a5b498-la0u1z96","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3a97063a88dc3c62345a2a21fe2d2c167780cb3e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-a5b498-la0u1z96.tgz","fileCount":1057,"integrity":"sha512-cjbMytacEPbtOafbc2BZTHkbwZ0MDqJgNKswr7r/UpNCkvf88VwKxpUNXJZwx9tNB1ElpmNQblN2Xx6or7qg5w==","signatures":[{"sig":"MEUCIErhMJZBeYd6vJikMNHLmUwkFr/bY5DhSLT5aVvz5DWWAiEApAYdmE9Sb5KA2qg8CRjKXZqwk57F2+uT0H08Vg/7Kj8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY4JUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUag/8DLyPOqWbBJ7AnGdEGzukC7NOHN9IyTNKiWmlrswCLHhaIQW3\r\nDJ2V8LJtnHYgD3VCoXnayEsw7WtB6HH1Tr4NQx7vg458UZM4qi+PgRnUVGza\r\n59W6hHjx9AlIJMI+QsScf1wXqR8Z8/J0r/FEe9vpYX6lM4SixJsHXGSZiKxr\r\nBHWd4KMNrLsqlQs08+Xr2fUZ1MgyQFpFWl+jNYvKGV97QPPEEAGt6Bx2+OIp\r\nSpS+tVfWejMPMGKGNHupnm8acEeeRakbtTFMfqBf1JjVCz/D9xJYCikKZmJb\r\nRbA/CLJd88zuRLF8a1fmZA9hPKkDTgx+tDoFFxgdE22W2mPr0qJW36EmSli2\r\n8lWfkbfC5qGgz7dkV06FtHTdqYwKfcxBxl4rqS7x7WWOO+Vc29UxxAkcSlxg\r\nG9NPu5FrqNWqNDRDyPPqeD+OHLoLnkaG78ovptIeG0EKWgj+xVhHULETaLiV\r\nviOlK7I57jUqHZvpyRXYvzuEZJ98h1v0r+dIEdrV8RuZgG8YsDZ4SFxR3n19\r\n2vho/xJZFPZdP19p2wAqSF8LFG8f4ejOR8WA7o8hX9MIur5qFVa+2R094b8Z\r\neYLE93KRVhFW5YkBhEn6F7UwsxptoEYAExRPa83IT0rV/5nwOiTjcBuj4aDY\r\nA69XcF0HsJ9SfrR5oDg5PrFB04Uy7SQOyOg=\r\n=eq3Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a5b4980488f34295fb3051dfbf3851d7db0f231b","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-a5b498-la0u1z96_1667465812058_0.2173377930172966","host":"s3://npm-registry-packages"}},"3.1.0-feature-e80b24-la0v3czk":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-e80b24-la0v3czk","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-e80b24-la0v3czk","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a0a2a0965351601d1ec4200ea761b4854c17e8d4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-e80b24-la0v3czk.tgz","fileCount":1057,"integrity":"sha512-a7kChWUribqkQSiL4gqaTXPniCUPXrgHn4PWSa6Am1e7Ibk2oVQwOgBkCGPPeY9xBTARINegqJzKTgO0Et+MlA==","signatures":[{"sig":"MEYCIQC6nl0jhYc6B3/ySnwTXQYkEidZljQZR6B/CLUNOIZdcwIhALS2zCs0G3vWdsPiMrCzS+JVFU9BEzVHpNgFKWkUhr+h","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY4kmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE5g//SFfGjhoSe1b/6unhM3SBHbav69rebR01hISDRT+Yi1y0fouf\r\nefBkZ6KMhrOVDw1Wvrj47nxZCuEa0kIdGqNfx5kZs0kYRmuskT8R9O2BLHql\r\nTd8Ha/kliWtPEPZ46UsB94WyRDFFY5CL2yY8BTQtirqRtnvSxLZJymzTTNrH\r\nKAE8GQHFvgcdhc+iBkXCmk3QjQtzVoJzx042k3sRceEXtsJBC3D3BdcBQGRw\r\n6XJ3vHg/6UgXe6M0vIJmCQ3pJmvD8C6NbIP2c8R2GRiod4AQwFCTngIYnWE7\r\nilqeuVNNw/KpE9VXfeluhxRtF8tC93DAL7GTErf2XAWYQCEE1zTYCuomvJl9\r\nVJIz65tB4FngelP6yxrtXFC4/iOD5Pv9eWE1x1EuNEGjezRqHrasLpQA0aBJ\r\nHSTkG9hTQQ/k3nByj57xZkbyEjfoB2zVJlCtXmUo2II4C9hE7qOCPDqQ9F8o\r\nI8aL7rwvBgmVIV1/pB+H0chgrSlfH12fIOtSRdUIEwuI/OusvPbJQnxfiEtg\r\niJmwK+X859Z1ckdTUT93k22YysYhQHHuV0WJze+kr2MwYgaOvbgA/ORpgsn+\r\noBvxjZBGzDglisRTmbrR0IalYQpgFJ7MivV5SqhD5RylHXmXtQfRyxBgN5uo\r\n/kLfiWcGHFR5l0FeD4PpNVEreIz3/fojvaQ=\r\n=neC8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e80b24f5d403da1902a5f1fbd5175807e04e6569","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-e80b24-la0v3czk_1667467557782_0.5138140676370329","host":"s3://npm-registry-packages"}},"3.1.0-beta.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-beta.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-beta.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"98bed5b6630606f5929835d214d62a9f06bb5278","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-beta.6.tgz","fileCount":1057,"integrity":"sha512-N5CTnC2Soh/PQMw7cs9YtDFKMHLBt3UKkkSwziqkn40btRvIBRvaN0FYwjlZ6kmzpTpslYNthkpkN9Vgu3k9RA==","signatures":[{"sig":"MEQCIHX/HzP10cyv8NQeUeD+MbN3e3PgGCEX+C9HLgF/u1QOAiATLCDHaw+aA4O0xr7BMhYhFpwXxiUBC5D9tE6T6gTvtQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY4sWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqezg//b1sFQOr+TD8HhhZ3UGrDnIjkI0XHBTs7FvGJ+frV0OjSbeTI\r\nhSnij/aKkBJGCJy9LFB4TKLwiJvBiCW9f47VylJFT++qqhdTogs42DbC5ZIl\r\nkMHFUfYt3JiHfWTp0UuTrNPmjwSZRXmR1n5pPfwfrRRCQ/ZZ98EwG5stAgAG\r\niOFObGWRqXunqywuFTzBrv7OXyF1KgRU0sPxQyY7p8zWEtJEaUiyTzX+AwLi\r\nVzVmedp9DiJkPjKJMl3TrBRFqas1rBtRSegK1M/Qk3Qk0Mda5fJOwXlKiJfA\r\nzGTnyLztUOU5jx6pp/aYxUuN5IgkczG6wXfB/b3m6hktKURuUnxFpB+rxhU0\r\nBnldRMii1YIhN3mJQsoctfABukhLnYQlSiaBh71YQjymyyDJ+sz1JUZAWYKp\r\nEvYWIw9BtKsoydKhG6kyUBcMyELo+IUdu3aoy9FY7WIYh7aulajJwkQ2ekB1\r\nTBbpLaWyMo7Sv1bkTE2kcbvEe4gvHhrlirfU662FMe7WS66YEx0jrYg2EZDg\r\ntXZ5NAjz/zxztI/AMVAgiCIHxbZOiwunKcc9udR2rL9eBQQZniP8Qz+I/8T5\r\n5hbpMndmeNjeI2etESuLOwZllF8gJl1/Ecey+oEDo2pembI5A7taZK2OFQYY\r\nwqR8kauSDMd9wYnhoqIoZxsJNRrvm7D2fLE=\r\n=ZR9G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"daab8adce7d443e64b9ca8393604b34d7f49b62b","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-beta.6_1667468053909_0.03470289290202344","host":"s3://npm-registry-packages"}},"3.1.0-feature-48567c-la0vol5g":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-48567c-la0vol5g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-48567c-la0vol5g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"275881f7a59774ee78ae504cdd51aa19a647eb77","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-48567c-la0vol5g.tgz","fileCount":1057,"integrity":"sha512-HS5a3ZX6jtrKJJGT90+dFlAS6nftDx/AVxH3VEq16qJ65EPaAeY7jbTd38PTLUAFbBVSDoXGujn5CgBvJLotUQ==","signatures":[{"sig":"MEUCIQCMnR/scXdfVs11QrJEPKWGJZWUDSsvAVagGTZaLVZtLAIgH3cxWr43XtqrEgtx2rNi1TJqDWGE3+04D687sVm2kkg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY40XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqEXA//TVPdzrJEfAPyc4chfpQyI8HjxPm06y2ddmki6VZ7Ve0FFkn5\r\n0bQepkNAFrzjzIgRYng2wk0l0PQopbG9drbanziN1LJzaDe6IL329sn/7fx4\r\n/Shx/2oxBOI6sMzBA1HDXW06d6sl8KhqVv53yMYi5eV08jNrsIez2XqgNr18\r\nAmHrodcJn+rj+Y63KJ7m2s+nnpal98z0MaKh3iGUHkv7BQZzTPI5GITMu0aR\r\njuZX6GnjY+9xY/hrUA8vJhdRKtMl0L6iAVnxAziHvK+mwV7CEfw/p3IUb9a+\r\nhidYrRyuB1+R0OjFj43osQ3ygN3nt/AmDZLAuEXVB+j2BwvpyOVBWxasHRg4\r\nL7wsSrajAvFWGx3Ia2l9DyvXP5Wwu4TO6P3mcZWRnk6CaIKXKrzwI/Hx2Bn2\r\nvNxM+o4ClCQUSQrwoK7IFjrD9IKqOF6AzWT8feXxZkcNbSo7dq8uLohmv2xM\r\ny36leAMYAty4+sRDrgaUAnM2RYPWND2gSRynlungT4DDGj8yYSb19Kjfwdqx\r\nX/IXcI19aW3ovkunjNDKaxMxg5uiqDBl2h56tKOmSOPb0VVFa9tsfCBApDTA\r\nWkQmX+9qGRFpRiC28vHu1WjQoXPV02NPfs07paJSJuE5iMHKe/vslF5a1W/s\r\n3gNwOK4C4aNnMDhQ+W9JG7I0BodH/7pP9WE=\r\n=rWn5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"48567cff3dac6a69fb77ad80ccd254457f3583fa","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-48567c-la0vol5g_1667468566925_0.9617767381604649","host":"s3://npm-registry-packages"}},"3.1.0-feature-6ecf04-la0wb2it":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-6ecf04-la0wb2it","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-6ecf04-la0wb2it","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9ea50e0b04d477ec7d11a5481b3432b28dd5f3e9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-6ecf04-la0wb2it.tgz","fileCount":1057,"integrity":"sha512-QyLqPZUGGkVlBKDTbDVs8IZahM1T9exPMzGcm2Ghr3tGAaNLQOem2Pa/osEEyB0GE3/ZaHWS1pDZ5GYeVRNhMQ==","signatures":[{"sig":"MEUCIHNqAN1He248EMVf2mnJpOglmLhqLYu0FDcECJ5F2B03AiEA1LbQHf0inhosNPKo4vIzMp3NJq8+wJJ81xJpSHyruXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY5EbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVxBAAhsfoYp9c5GiqQqEvWNfRgtPZr0pdSZRpItdAYQHEn+jucYan\r\nt4OtakBQmDIk3EHN8dHK6rXV+Vc2rvqGj+AhSLFbTxwVZnOHxbliqtVcYO3f\r\nl0AzoiJ3lxJ69woAcfDQcYJXZlLQFIsYcnlmCFv+ooCskNI52Jw0MF+Ua23o\r\nz/WraVMX7UohaiZeVP1Ole8CnPRM1rgxLhLq1dUsEiOyUuMUK/7JlhD/7tkP\r\nDDM/kupAZYy3ItCF4yTK/jaeaF9n7Pm5VX7Ztw+xhDW9BZ461pOrRH5hjzdN\r\nCac3LePmIO+km5Me3hetb1Q1x7w4aId6W74ifapcgFe5jUDDBmNXarF8Bw5x\r\nbJlXgipQflxppl9inbdN5RkUEZ971F+SRA8Lko6/mDe0EEaqFdWqXtFePA/t\r\nPBUtMrdqbh2sJ2udhQzKyCTnCuG3WrZUbWYlTtZ9gaVm8AWAMoLj4GKHWwM7\r\niIwjscRWYQWgmwbCTFwlyuSkEmipdhDZqO3J2HYDWoY5edUX/iZFJEmvqeVr\r\ns21WS17Gm2gOVneOE68sgbgEFYFs9HmkMhWwrUu1mEkewo3MhGs+5qE8f8xY\r\nEQHMsHN/sTUUtm7P+I5TTE340/uJNn+bsj7nZth/g4FfKjUTuwC7k9ReykPY\r\nTdfDAIXq7dijeEcFsR4XRgUqLo+Iyc5/c9Q=\r\n=hq1m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"6ecf04d73ac97b2d30309b005e2da61e43abd9ad","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-6ecf04-la0wb2it_1667469594761_0.1742580296330789","host":"s3://npm-registry-packages"}},"3.1.0-feature-8791a5-la28f4nd":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-8791a5-la28f4nd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-8791a5-la28f4nd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dd43ffb304ebd4745c94e848805aaaa762d04833","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-8791a5-la28f4nd.tgz","fileCount":1057,"integrity":"sha512-Ssh/p81wrpELyKsZ3xuoa4BCYCnYQvD1CZlkmWqcwNwTo89ucffCFkM9CN6d5C2D6P9JFhj7X5/c6TcYd7wRpA==","signatures":[{"sig":"MEUCIQDB/mFUFjBV44MWAJqJjffbSua2LOnbVE/5EwlXeaX1ygIgMgmPCbZZCHqoBDnkOF4YQFSoISQzMrYDXfsgJZdPJ7Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1347347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZMzFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqUg/8CP+a/q5+tDbLlJId5BeYW/fIrIl07QFILegYYXaeVPP0eZvT\r\nmNncaqMSqSp9gf/mbq+aUFuZbiWI8K47IZHkIMVX8PT4IvOoE6dd4WjKKHBZ\r\nnyn+CMitNa9Cw/mvC9egXIZzYMlVtuTGZRC4VBlbdh6bdNsBT6y/PJ909Gg3\r\nXgywrWgM/0qOSkV3lGoQm1fjnCyNMkNudShaO89rExnen/OkCydHQiLE1p2z\r\n2uHESK2VhmQ9uyhqFgfGPBJEP4ViOeSKm2xxUkbzszhQCbSRxdL9o+FD8std\r\ny9iw79m35w9W2ET+nR03By0jeqUU/mM7CsamB3+vyNfpXngQiJLKQqxSzedZ\r\n0UBvo5C780/GeAEjPBnPC2jFXsoWuDy7dIPXVM1A1EcB0y3AQ1YdtQEVWg3u\r\nSEhYtXU5V3BqfjLGPPdvngQho8B+SMN/8Hm3KG6/2D3eMBsuhuXKputHF/EG\r\nTBJ9D/XxBwfUf6Tr9CWivHAx9Lus5KFthezw+k/HqDPejbWcjPyYxbnNgko0\r\nihrRbZRo+mB0zJuYJVPGKSFnZH15FrAo/IrQnYspXq7SHuuguGxm2cI403td\r\nHFck9HHfg1BeRT0nnrRMJ1cvuTJPuK2IHrBVlLbZ4RlS+HFYxnpSonBYYuui\r\nq5TAwg3V70GZ3rzdfiMBzQ1APjN7U9/tur0=\r\n=lopF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","browser":"dist/es/index.js","gitHead":"8791a5845a6cd4bee2b95b4040f3b68b14624109","scripts":{"build":"npm run build-commonjs && npm run build-es","clean":"rm -rf dist","prepare":"npm run clean-build","build-es":"tsc --module esnext --outDir ./dist/es","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"sideEffects":false,"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-8791a5-la28f4nd_1667550405591_0.796738133422422","host":"s3://npm-registry-packages"}},"3.1.0-feature-dbceb3-la2azf95":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-dbceb3-la2azf95","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-dbceb3-la2azf95","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b6efef9b1a03de183f5301dc29e120bf3f84bbfe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-dbceb3-la2azf95.tgz","fileCount":1057,"integrity":"sha512-izB80OKBq/Fz26R4kNU6vvm0rd4bR1re75qBH27H6WfKwlY5tie0wTt2i7AGJ6mvqvqji281/Jbv2hwSC+qy2Q==","signatures":[{"sig":"MEYCIQCZzgF4EbPE/mrWUDYtUBeNyCzw2g/OuLmH3o9B2tWBQQIhAIy+IWIfZn69Zwu2V3k+kpyslWFjlFIlcsSbCm1nYTmj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZN2WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAUg//ZTYLmzKn25NALYqZ3wXetmLpPQo8LSz5m6NLlGqiw1orOy3L\r\nOAmGZXMr/HHqM4001Hl+Zm8GrxssIkqQYBx1xxDDQpuhW+KH/ks62XMsz00a\r\nvEtWxppBzo7JZIvSGKXknqaODewgUepP4Ge9DxInL5MAlHw6NFEa1Ak+vQd7\r\n/OHDg1yPpH8NKbz1UiGgH/VEUFsfo+RGBaCmaWJXzI5YsVF6Z8O2i6FgAWS2\r\nlKHGMsuVuv92CqxzEAxTestZeDlsQz+h7pV1z1k3FkERhv/otlKrSZUDIEI+\r\nw24y2fLkf147I8ofZRJWfE74ET/OCrZ1wQQpuZGRNQuM8Q7quTq1Ii+IUZEq\r\nVrRRO5B7RzkPa/JJWD50LHgd52jqW+TcJD1LDvnPWZUXaeR/EOoqxl/TQ1tl\r\nNWqBOU5l+tz5ZiaV50dhRrS0S4SxBUVyD/yp3Nkvl0hOM08/HVabWdBS9cRr\r\nEOgmMpRd4LCdDw3vjGsiBS/isOG536Q8INlR0ThlDyNe3iYLsSWJZ6zacp2P\r\nZHv+dFqLK9a+Z5hYKbPszSfabGYOUC/+utwMRnjxpm1GKi/+zC+71xenbMKi\r\nsDMEV+5OYGFpnfpEnWM4x9eH0E5WYXjMwiM0S/o2El/RUhtPUNlHDP/AgveZ\r\n1/7UsgOLMtHXzIAxeeUcvL7UMcPmVMOVpto=\r\n=YhKM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dbceb3ffd3a5a5fa77415a18b3c37c31bebe3a94","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-dbceb3-la2azf95_1667554710346_0.688739191845221","host":"s3://npm-registry-packages"}},"3.1.0-feature-a6372c-la2g0xj5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-a6372c-la2g0xj5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-a6372c-la2g0xj5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"97ad553d119d9eb7f35976a0ddf61d204b16ec36","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-a6372c-la2g0xj5.tgz","fileCount":1057,"integrity":"sha512-iNQkXMaEFMs9Pi0QiRq7Vdr/gO/iHmSGFPZvIpUE1I77fOOJ8G/sDY2SU89nCn3lVXRkxDoAJHXRYyCoIt5Xmw==","signatures":[{"sig":"MEUCID8ij0zg0DosmXeztJ+U2+qEeUnTG0hu+GU7gBdQxbHoAiEA88yMUwwoM7en28hPPUbFz8eVUGD/3ujaC6selmQ+6Eo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1347351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZP63ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqcJw//a86+R/trrSGNsAaxKWS2kIcPav6fTTvGh/ZUfjX3lnYpcbOh\r\noEjY3UkS4h2hgv8tWg6Mzq/wqvKwoF3FIPp7fOTrLv+1J+hKDNpqqnI1NvOx\r\n3RoWT1AjdT9q/Cogf/ZFVnIjrbPnW98bpjtHjyFaty7PT8G8Gi9NNx0KygCF\r\nB+ADfjH3HwDyYYvwswpLgceS85ypMDNdPqTNScV1N7BPVpHxFd3lHjawOfHb\r\n+vHtZQOvFKGuYUqLwnYBWFSV1eBCxZq43HSfEWKoCdcu5Vo54zN96PgzjgZW\r\nkQt24p5K5mnrPB1fV1wJf4fc8i3hkE2B2hqt2FTanCij2YPeW11iOgpzq1ak\r\nehdDJgi+hJvJ9V1sijp0PyDgwF1OFpqTVbJcWE44M7o7HSuNf5rD6wBwN2Rt\r\nOK2Sh+OwWjF9Mx0HQxg74BTPqqcx4/tA9jmvYZHZI4Teqq4R6WDIU11bBoGS\r\n1zmxFvFmN4+uQll/dL3vjt1/iLRrzTw6oUUkruLp4gN7XSUyfnB0bNXq6IPQ\r\ndn89aWcLWSgb6XE8Hjlgzw4YB66qrnZMYiiqKkcwIb5BtzZIz7t6JCFaX5x7\r\nevuWrnnaaNXCRaPj0E6MCe3Y2OCZZoVB4vb/Sh1Em3dj+JtUh1rzNiYp8Eot\r\n3v9xSZO2xggNCKVawiYapIiH0J1797chRL0=\r\n=GuDY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","browser":"dist/esm/index.js","gitHead":"a6372c26d818a4d37e7947857a0acd5e483aad7b","scripts":{"build":"npm run build-commonjs && npm run build-esm","clean":"rm -rf dist","prepare":"npm run clean-build","build-esm":"tsc --module esnext --outDir ./dist/esm","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"sideEffects":false,"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-a6372c-la2g0xj5_1667563191732_0.6833175582518007","host":"s3://npm-registry-packages"}},"3.1.0-feature-4ec5de-la2me0hd":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-4ec5de-la2me0hd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-4ec5de-la2me0hd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f26bd76ce46db51ee5b7b2279ce3e62d5e39d27d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-4ec5de-la2me0hd.tgz","fileCount":1057,"integrity":"sha512-OZZydczFGflu9GVAt+N3ju7UX+D68UK7IZx/srfVlHcbpivfS01/hVJrSbYR9NeJ+dvh4jsUzKuP25q70DUfLg==","signatures":[{"sig":"MEQCIHix1J/PtvaCydwJQfLrJkzflP+rAEaDagZzshhjw/snAiBotTxAjaE7DiL2zV5UurlyqR30mwLILnC8T6pOlHaIww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1347536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZShvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMVA//Xn9i6X50VUJ73OKKBWfIHB6QtbJBHDhY6Q7ROr65JF/wB/ut\r\nVdPCH05NwpqPuNftobBk3GQqS+d6tg3RP1CPIewfSu3pf5JuwrGkC/l4fwBh\r\nktNyMY0AOjNcR/OTub6r4+S8StJgiAjxQbcLK6o/G5L1juhg8LkYB009YcBo\r\nrOBmT71WmII0KrXNDB+kqzbxi06xhJZs1NbWb07TzC3T+/ojbi3h4tKQENAm\r\nhtvKDdSS6CxaXVvpemtYIlT5CtzD/yJGASvCdkon3hgkB8vE4g4LHUa2af4G\r\nUT/V0lIDvU7JlD67UIEni8Tr0QIE8uL7p0N+9nwNp5MoQs7/0RXkVbUZYhm3\r\nqJo1iB2kGEYmU3h/pYNPYGDPkqInOal+88WBxNo1KVGQ99mi3QTSmQfB7YSq\r\nDepQLbAmdOS2lwMT1Q17MYlhfFZLTDUO9H5TQS6m02BrZh6OpHwilSmPrbET\r\n05GwjDhFZN6FQQeBtYlil3gE+BLCyJM2XPPWG1x9xjdHmhXJO5TXgz/nBPTU\r\nWpSW6ru3QZcA8+TLDaX389/alx/O0y2skfMCBqcrK9cG5GH97d0Q+tq190tB\r\nz9xEGwk3t8GXhgV/BWjU9EVchzoV0tZikFYsxzs9gt0wIP6gR4p/zxS9OmXH\r\n3E5ERp4mBrxfK6Gks6YDdsWlSaF4r9G/mdQ=\r\n=4zYD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","browser":"dist/esm/index.js","gitHead":"4ec5dea94013758ae8b06259dab932a0da8cafe6","scripts":{"build":"npm run build-commonjs && npm run build-esm","clean":"rm -rf dist","prepare":"npm run clean-build","build-esm":"tsc --module esnext --outDir ./dist/esm","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"sideEffects":false,"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-4ec5de-la2me0hd_1667573871073_0.26585218833068147","host":"s3://npm-registry-packages"}},"3.1.0-feature-4a8626-la6ipd2z":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-4a8626-la6ipd2z","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-4a8626-la6ipd2z","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ed9192ddeaad19086cb7732d7a76408499c16260","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-4a8626-la6ipd2z.tgz","fileCount":1057,"integrity":"sha512-1iluz5rqfu/Hpxo/+vntICyPRcfc1RSAeWsDcoOrD1Lm7qI9DOUI1Iw0QZ4BelNh4f3eLDjhLKzCjFZQ94aiDw==","signatures":[{"sig":"MEQCIHFrnt3iRW7lwQYKx7Tf3b3fA6PVsvC9dyXuA56cSWbXAiBQkN7XzPrp5VSsrfNz95aiw7cInPB8USjmv6PbCuuX6Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1434540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaMELACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBvw/+P4a/t8aalFmkBOK/4ivQz9mLA0y0WhRIFOce0Ozee91uOfoD\r\nbd/bg6sBG1ZJNVWew/9iVBZhAzqEu2Kv5TH7I0rz1w8VHYCGBKdBvrX7/4gN\r\nvlv+g1t+VGK3D2ZIOPAnrDLfTZIraLJi5dXPgEyxT5hSt/RhSDmpZJDh/fbO\r\nkw3PX3tH1vnhig78h85aujhTAzY6XVbgKaJvfweBXYoeveWrHauHSfFC0nN6\r\nJ33iCGocWfpyHV0ng7migNirOT9OiVlzYyMFmPscxrcjIzHbTuHPxsG3avAH\r\nGOUsI7NQEDXpMovZoX11Z4I//9cm9sW5ctatscIBBKIkylV1lxwgjlDEm6HG\r\n+uE9Mp/u3DVkrv4L5mlGCKN3ttU8HOjEhP7RiyfZwrw3o5XO/ztXl3AXpiDT\r\n0CdxXYgiwEE65kMeNkOZPQy+MC/bNQFPdJfIQF1GIOUk8Sui2NHTg6yu8jNv\r\n1HU+DuRc65JC7Uq2e1vgQ57tl7Qc8EZRy7v0p/VpVb6cejIcB9jFg4C2e5Dk\r\njYE4rRWXLnHshpcyvGSEbnjuseV2y0KsVFB+mI57jNcmNvcjwKp8vVA55ziL\r\noxcLF7hTwqNmXUD8T3dQpZw9QCs0fu14u00LoZgG6lj4+axd09GNhFIRV9u+\r\nCJzrzntUdETn0BZhiHJkyPtqVjKQ6LWfHLk=\r\n=3Yum\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4a8626b13610e41c8eb34ba5b7c9b5be381aac27","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-4a8626-la6ipd2z_1667809546779_0.3203204370645003","host":"s3://npm-registry-packages"}},"3.1.0-feature-804458-la6lwley":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-804458-la6lwley","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-804458-la6lwley","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7f8d0ae0868b36a19fe292f8a20a1b55e6b8f8c2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-804458-la6lwley.tgz","fileCount":1057,"integrity":"sha512-mwR3Own2Vz7D1VyfRr9mL6DoHvyVU2hW919a2020HSSdU8+hs4je+w1ioiBaHy46FmJBynliHXlRYd+aE8/sjg==","signatures":[{"sig":"MEQCIEnASsnLI7UlOMRfutJMx01RvRurqXJ7kkyxAlBkz0auAiA5w7hsgCWnnqfLruLc45+nvPfHnqSLIsNDlBLeG30OdA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1437027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaNYgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqiWBAAjNjOwT1UNV86H7cU3jO17/x1LSsqpFsZfDQcfQIKCfXYa9++\r\nYNczJDykxqNHJftyKMg76IvlkSXyJUz6EJH1B8KDzoFLH70s+2y4kPYG6R+W\r\nt/ZIVHs6YkRLuGkr6UQIngqJEP3oeCZauW4R1QvkTnwP83wcmwKBIh1IQssQ\r\nxi7Z0N7al4D5Emxyo5fbIkq7+CRss8RBi630fccn5FrGAy4koi/BtHFqnF6V\r\nBLJQHhVnyOrusPZ2A2CpyWQD5BJz8IfWqCNb4NDp/gORJRDCbAknanBjI/ME\r\nofKt5IceKKi9OfZc8cOO0BvThGS5oL8XmasYv4E+MRiEcBuvgwX/copXruy1\r\nz837NjJ1nwxzbcyQg0/M/hSQD0lrGSiFcH1ZTt2an64Pc+muMK8WzJk+6nrS\r\n8sJUqlodcsnQKTjqqrv6qKBTnIprkNdwgEv7Sks6ASI/3kGJY4MY2spVRrKH\r\niMewUj8A4K0v0QvmW5jtJVeLSgQKwl1j8Nta8+G1iDbZfpD1zMKOtpZrY7i4\r\najszYx23yfkG4EwVXffKMvX+iE8kc2dpQvwO2O1wiwJT4QQc5Tgss2g6czAp\r\nWadS0GjQSE2h2JNid8lL2BB11Vuu//jBTeOuMdlp02+RBD5W/r8kh2LWuOxv\r\nA/UoCM8Oc4Ed+vjkn53nSxM8d3wmaREkPMU=\r\n=9sq0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"804458ce99f569f92296e2fcce712c8556caf401","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-804458-la6lwley_1667814944186_0.965754365779036","host":"s3://npm-registry-packages"}},"3.1.0-feature-bd526e-la6mdtql":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-bd526e-la6mdtql","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-bd526e-la6mdtql","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5aeffbeaac66511b19f0e030a70f5dd1cc8f9bfc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-bd526e-la6mdtql.tgz","fileCount":1057,"integrity":"sha512-j9e4nPnVRBeDP/wJMSn1tdHzyuP1Ddt7pHRhVKMyr/Ai2MT2l57XSOV2HSZ/7CfuQdEo6s8xxjuw8nIlkhQr0Q==","signatures":[{"sig":"MEUCIQDyBWWW+eiEt1On2EswpgSVKCpnEtzNwcYsSDgTbaUzNgIgeLhcRCAPll8h2Fomsg+QNukK1Vi9f47lqwAnLppsygw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1437027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaNk0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8Xw/9Hrb0lCTG0aQ7bs5VHhZVTDfTZTbhS0f0xJaSBho92/7CYFqr\r\ncZlciX5FKf9NMa1rAxs8XratEqRBjoliik+rmqe78Ws42/Xb68VeexFidlrK\r\nNSjJ5ktAoAbv9NgvXiXGJkWyaKHBO48WBFHqGn4Xrp89wKno88r27tDILkCV\r\nsXrlCAjtXraOrq2o8e4IqLiMSeYmeM+vxa172goTmtVxGpBZWoJ/tb9a8BoA\r\nf/bdpROf9jMHRCWCpoLzovBnuCGkE0rJ61n5Q45RsISyoe97MZpPIomRbrtD\r\nuNBg5+Kzyf921H4tpijpipnSlfXeeRSLX4bszRHCmi7ukzwsfvxUwIIt15Aa\r\nvwv7U8ee9g4P2xxzWc5ZLnTGUQTp07MIDv66PDZU+RS37dtKWBXBTURRLFKe\r\nDuMY+aPWRK5hBQtGl7o/tNxd4zAEOHHY38h5mPBMCuAKGhpW8SVuRT7HQIKc\r\nW6cwwdICT4etvAP/UUrMEbHTDX7gi5u7yTxjmF9WdoyC7wcK2HryDM+mMjI/\r\n2dvKyEVCXSaH684Y6J4RmY7/GbPYV7W924bJlptvwbzWNetyBX+bnfkrNoPL\r\nYhLzkFhUtgklgnVuQB8haUZVmMLaYlImH1YT2pKp5nYtVf0nd0If6RnXPRbu\r\nWXq2KexqQIAA7KSdqJJ5jBAuSV5sTCvNWoQ=\r\n=q50A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bd526e262c3ecdaf5a6c5006be1cc32a0a7b08f8","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-bd526e-la6mdtql_1667815732062_0.2557132219000051","host":"s3://npm-registry-packages"}},"3.1.0-alpha.12":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-alpha.12","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-alpha.12","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6db5e32e4f33b15ddd2640b4b2cc5bd0bf4b40f9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-alpha.12.tgz","fileCount":1057,"integrity":"sha512-qR3l9QNa/t8R7NoSrR6pehooR1cgckrOFBFozjlGUrnB0her2Z7eFtojSUr5cz6Fe1iegdcj7Cia1IhPg77Q2g==","signatures":[{"sig":"MEUCIA+2ZwkYy0qki2tA441mIMihy+PIkqsrZvMUMT0GG0MLAiEA53gMFvzppyWDJIOL1Z6tfsjZcxWnvz5v8T3UHKxuzso=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjag0xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNKg/+MiM0dxdgoVr3bfGND/tGaVLtrlp5HHiOb9iYh5UqQ3/CK1qa\r\ncyFILbN89oaRfEfcqO45c9bJgAEOKrAJBDRL0k2DaJB/dcy65Nk5i3CosTyV\r\nWvcD124wE55k5uXcU+YjY2vLTz6iIVJB0iVyKVrTzyMO8xmw1LDf4EpX4XLG\r\nzuhPIjnE2nzt4zlRhmV20dsjo7zzMfh2MfwWV8Jr2n3DOi9F7R1tH+zyuBIq\r\nb7IIfLNBJfJXcKGjBbLCRTJZKsmcgnEqSfxbO4gXIAdz+okVhDybU8adu7hb\r\nyHpgqBBgUcFnG2pGKGw3qX2H8zcumWfIp72myijFOje7X7f4QVaMrcd5PV0F\r\n5hVicL+Qap+eeWp6ds+8cwHNDQKBfn8RpYS/in4Bw9llIGcagxLPfXQS9Cqy\r\niYNJyD49MWOxvgTITZGlVA//0hGEmcnzXiS9UaT70S5c4pSYbjxsV8Tqm2Ow\r\n2YG9DEKFQFYlZiOqZTlEcMXuRrtirdoNCvjtM5H3H8/eF+2S9NbqSjP74Xxz\r\nBKsibBLcLcybiy+ce+zODmYrCZNJaGVUV/e2O9FGAJkycFrjt1jHxw7mGb83\r\nKLDi3r0epxh9DMhJ6I1L3x+JnhEu4878mrGJ+LXafF+71d10Zt0SaNsOy8UF\r\nVQ6d/E98XzrdOSMB0uwyagrAh8LAr/sgi10=\r\n=2Oy8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f2924c089ca23610a00ac60d749c9d3bab952598","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-alpha.12_1667894576844_0.506607623110013","host":"s3://npm-registry-packages"}},"3.1.0-feature-30ffdb-la8d9ld8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-30ffdb-la8d9ld8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-30ffdb-la8d9ld8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ce41eb6be057c8efe0c2aebdf852874e5f544c32","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-30ffdb-la8d9ld8.tgz","fileCount":1067,"integrity":"sha512-1+RaaIPDeQxn0ec/9d2/P5ijGkaOY+zfxaICQO2ke1AcQsefX2Ta2usRtA0vape2GMZ/PMLGk5QoYJSsxdTmEA==","signatures":[{"sig":"MEQCIFZO4oABh1KqVNvZ14kUMZohEF4s4URC/b492C/ZXY9TAiBhWTB6ZZeBT39d6W87KgO8Advc9/8gEwb/HbzqVrY11Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjanXMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMtg/7B61blkMDLZQrWsmEyPAltOhS1E+agf19UI2I4bCOpAtLsGBz\r\nA3wbn7SLPDscUMPQvvymr/XVLNJnW0SDr+YasM3u38sjkF+6WM4BOgFESfzj\r\neVeVWHmakHrSeyUikZ+dJuhp332hQiIy8zu1J1JsZgEHnbZ6Qr/ra2aoIm1N\r\nyD/wmYkObnKR8dZ2zF5Jx9DkkD/71LgOFlAsEls6RgLclveUyoDppBkm+YTu\r\nD2HfJKVSiLQ2TAzbWQZh/3HNU/Ae8kFmOpo8neX2BVSPA1sgCf6X0ueHlk0q\r\nL7pYgZKRDH5mJpWlTSdlKunazPxB9l0S5d4eCT9yPmA0A+Rr5222zTesLiPv\r\nt16eVc5T91JDqK4JDriwmDCyUYxDuGAflebQxm/ha07G41gxoNUYET2aA8uS\r\nFw41znVA+8LScWATZyGC+qHAJfdOgIiKm44+gl/+vuo3KbTP0ovqcYWXh8qc\r\nascqg7Wi4pZVDqsKwPgO/glVbaOjdeVI5891iukg2WE4TK82cmDLUwL7v8FQ\r\nUWO6TPu54GLSTc3lSgOtmILBwBz0AgE4UGoQRRhJTlM9kIKFiLF9kUYaR516\r\nYgEyG/KUM9tIDu3zv0ZS9jFz0UadYkiG76PpFsIGH/ajYrP55lboPGYdc4hu\r\nyHtkj1Suyp8gQwg3VZfvcFvH5SHEnNNx6Sk=\r\n=gYEs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"30ffdb6b815889f970e16cfffc54cbed040d480b","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-30ffdb-la8d9ld8_1667921356728_0.7769355368882562","host":"s3://npm-registry-packages"}},"3.1.0-feature-393d34-la8dl5yc":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-393d34-la8dl5yc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-393d34-la8dl5yc","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d9b46c6b270aededd3602552c4e3f620cb2e6a62","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-393d34-la8dl5yc.tgz","fileCount":1067,"integrity":"sha512-CwaqjIxpZWQxkfBQdhZEJyuheQLSR2Ptg2CmAEfsAmri0jhuxlWtYkfD95B4uZEpG4f4G6598wwhRYM3Jxl2+A==","signatures":[{"sig":"MEUCIHM28p5J/XnNLVy1OFrwimAFnFS7J1q7G2tD3axaqZPfAiEAxhCeK8OMuf99vRyRUKsAbd3TXdvozHelnuKPuk3spUM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjanfaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqibA/9E1vIKb4lKOul2HUTZhnbU5qwWo4Z6Bq17tqjQ5Eg4JKa1hIn\r\ntsmcj0eZ3ki+Di+SeTNI2bB//1wNxEVW3QdvJfFJoZeDbU4kWQPzas8nh3LG\r\nGRq/nSj6BxTJo6cLKafpyoFcQvs9exUOSaScC5DWI42hXiLi0iIiqQNEz+3o\r\ntLlWrZNIEAEqHIb6CIk8R7hnOxHznXzz9HPv2NoDJJI9ptWdHkDdtgDpePqK\r\nOlvYLeRcaXTv2rV050IszxLyh4a4G5Zs8xpyE94LAVhewpsiAfh3YJXcQ9kZ\r\nveFic2/9WKXyn6lEpSOCWLURmEWiWfJAjfV6XOmq1ulwMxR8iNi17Oerf8vT\r\nByh86RDiLCKVr26aj2iEI4DQCLHXH4Z1oCgWopc9im0sSVhc7XpydLB7ALXc\r\n5zFEkgg7pHqr0J1eOgtoQliAjA+zE67uOj6XQwJW9f5gzGwTvv3+W2BgHKC1\r\nryXBY84wIB3oetpiTah1AO45ntSbkYzp3/ltSnod1PzCjGlcr7GpBhvh0w5y\r\nJKJBBLjHJRXEi5HVkCC9iJiYLXtmzbmDrAw+Ywl9BYAoFMjreps8I1JvySM6\r\nH9ENST43AAbY14+0YDXdunpYHymTWZLjqV0HGBQQGQk3lq4x3Y3Eg+FV75pr\r\nPJBuAP/frBqfoj58JKNlkL2Ly13KhzUoKJc=\r\n=Pywr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"393d3464bd962142402020ff2abd7000a6444999","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-393d34-la8dl5yc_1667921882760_0.7777109511728151","host":"s3://npm-registry-packages"}},"3.1.0-feature-73aec3-la8dt641":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-73aec3-la8dt641","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-73aec3-la8dt641","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"59f9f8b7399c96c1f421a32e2072d4bdb80f85b5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-73aec3-la8dt641.tgz","fileCount":1067,"integrity":"sha512-wfrnOVhCyhA4Q6xlTxNpSKgIE+zQgXIQpH1UNFM90zaq7jRg7Nb3JpTi6SFsQn330mRI+rLKW+VNpiIR8yc7qg==","signatures":[{"sig":"MEYCIQD0osN3DFnGifTh/TZEn4/zub69Fv7pmHcbKv0XxzcU7AIhAKEPNsO6WZirYxKUgeUMa48fQ6lOalcGIiWtIueZ89qm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjanlQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHcg/+IvuN0REaG9sm+y/yMjovjWza0a690XeiVvC4oh0Jg8yUuVpO\r\nxNvTQKCWY+J812/yIhV3+kWe6avPbRC4wSbd6agz+edYIAapZeFVzyW859ln\r\nG+b2DqMhovUMTfYvhkAuTCgK7lpTYb497w74PyE4z7J+4nA8wFAvmKCE7epn\r\ntMVusjgUKpBy7sOMrhxEik6ErY0vYviaxKZhbmW5Y6/DZSR28xKWh6xtjbZJ\r\nHCauYGYL2VBGKAHY6CgCre8zzeVI7CrocIAAvyyN5mt+e0MOxlwNFzeVPcgP\r\nY0se06qhHjh09OKq1SdlFtEZS6bJCxuLyLttmMe7nnesdIcKdg4HxYfGe1d6\r\nG5dYF2AUwx0Hq5GkjfEwHGmshdXcT1hOwKDUF8y38I+K9cSg07F1TJv+42ou\r\nluIWt7juTRs20CnXcaR+Rn6jcJxo0WXpy7qEiAytnuokPeNKVy4MATCn4QpZ\r\nuQ1VDLrK93oKoelapGv9G8ar2ajqaBf+bbBeWSd33n81cRhk9jLqrmi7ggP8\r\nTI51S8zkLgGhUQMXaWgoRLN4YzIDnnGXqgntpSC+MH9Yuao4Q4qpfdPfnQXJ\r\nlUt2u1J/S9dN+qDSgxp7dwpIQ8sKQX6AEQJgjz5KodwtecMEWvu0pD2j15NS\r\n4qkH4K4kkKZSo0QefiZYnFexGXjcBFi5SXk=\r\n=L7hT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"73aec3efb728b67dcbec88a144210c8a04978f33","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-73aec3-la8dt641_1667922256595_0.892030111607657","host":"s3://npm-registry-packages"}},"3.1.0-feature-68ae3e-la8e90ao":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-68ae3e-la8e90ao","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-68ae3e-la8e90ao","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2fcae449b80f1ee9296fb62f8e783b4b4d0c333d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-68ae3e-la8e90ao.tgz","fileCount":1067,"integrity":"sha512-3VADmN/I3tIvudiqe2Yb5crnbK/MiUa2JMgSpNFT4NxpHMsUj5/HkV4QwgLil8t3w9023RhtxcZEu1qdO3ggBg==","signatures":[{"sig":"MEUCIQCIRdFb5SGddV5/4As3I1zSIUxdIvS0h5ojHtprQeYQAgIgGN3vm1Qf6SkIfjNZlTSFPWUaJWvIcz4GubyyS+VMbNo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjanxBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhhQ/5AAkqdLmvjAWVPV/xHokNA36WPrk0rNlCrnbK3aa2PQI6asqP\r\nNYu+MNGmxuJ9JFxAOXqN4fhRyr8E/Wt+AjgDL1hA1FZcMTBJIXIBztjJjoec\r\nEIacdhyaXEBfW1ikkNdqKZnd7m5/AJdeZ31AjzJq8Wmq3PSrnM3ey/y6lIwZ\r\nmZpe35K2q+wq1RVnMQjUrcdwQkwN0Y5/JomhKM11Oy1ZTTZISKEUVD3rLn52\r\nTCPEEphZWTH/JEcevRxz4VWeTtoi+1DCx7bIBuhNF4XzM74cdecCF2+ixrko\r\nhV0AYonqHwTxIa+ckjFEhIV0vdZlheY+vkKSuQqpOZOXrbC+1VLKi7Ia/qta\r\nG6E4rEMHvJDoG8BZODNsCeltZi/kq4OV288DBldqImRvHpVlDI3MlOAV/gug\r\n7fhpB56KeK9cvFDE2Y7WBI/PzWN/vbpsTGcGKphhUZ4/6Dl9rnoisGBbI36R\r\n45WZqjDQjh61C9y0k8NWK4Vvuhai3vWSQXOkL+1+AFoAKid4/xuT61efRu9G\r\nqRu8ovzv5muAHCZPQi7lD9mHM/geFnhrl7Wv/HnksjPN0RPiWfw8+lAAzCIW\r\ntJcViiW1fuVZYCRybcT6+xY6LJ3/+NRRw/hDtsVHRJDmXLFz9RLK2exvjGCq\r\nTxrGY7Pj7kJYOJ1QRfvnkL0g/Bi2h3fCeJc=\r\n=RLEQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"68ae3e3f3200ec07761c83a4af2129cc51d029eb","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-68ae3e-la8e90ao_1667923009328_0.277210961885509","host":"s3://npm-registry-packages"}},"3.1.0-feature-cd9fac-la8ejuq2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-cd9fac-la8ejuq2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-cd9fac-la8ejuq2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"66a870d8e0276e308a083a33d6fde2997dcea6ec","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-cd9fac-la8ejuq2.tgz","fileCount":1067,"integrity":"sha512-S2qxoMOU2dZRJC7eJtgiyrXqKidyJZWKoSqAzeWpXdALYlKcWHzl2NZTW/UX6o5Qsmt7Y+7D1za5Biq/oW+69A==","signatures":[{"sig":"MEQCIHOAvc3mynKXGNWS4OqQlgTgdETRHU3NKGixYraEfSshAiAFgwAYudP2d26Q4K99hMQ3h5FD7s0yK4UOysbwlTD5Yw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjan4vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNjA//T3mmq+5VGDknlICGlmm1Bk0ry9tiUMN8O+MetEFM16VPWM3H\r\nrtI9Us+lymSSdYohqFtTzF/0y4FQ600G8+nlsTBGpmAqk2TR9OUBI0WOiSJy\r\n4amn8S8Ne6By95Ko/bYVvG3j8NERoSj/DV3RPn/Qm8RscsZxn2WhIgqWTry9\r\n0KMmZq9JPPk0asMJI3iwELgxSMX2yw0wdtcn0+Ny88+YB2WaZEvK60osFlrf\r\nun5T92bmimje3jYs6YlcthZw3NqpwGrg9WgAmBG8dX5TTUmv8VkCuAB4CJhI\r\nnJzBtSW052UfFPkr7HVZpwass7EKFLwIDIhESB3VBpOrzmDNItozKmejOkL+\r\nPpqSkzXUih+F1BFm7qOIFb6W9chpuu9jQQ7FtK1r8cSMWseCI86MV6vy8f8u\r\nycv75h3lELDTBmE3XAKApz26x0JlmvbSm+RfQikW0RpHIOgZaGElLTl9Gs0U\r\n1ynBAh4W1WYjtJE4cBOhjEIKQaK3yqo0S980Ppio2D851/wX809LyGJWs681\r\ny3OEl690s2wzvG1rcNzSBVKemCrVvJrJcHkAPBoRjfIDVVwDZnzxlT26auXy\r\nhu+XD/HnTmaQ3uqIUkvqBmSPzq2kAShsrUDqWWljCli+bahM/g/l5QdatH/2\r\n3eLuXgsyqAb5zNYkl+AVRgXKOAk1zTNS/QE=\r\n=qlcO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cd9fac85b88a5de04b9f51b0bd7f4ae71f0beb74","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-cd9fac-la8ejuq2_1667923503145_0.7015560703640678","host":"s3://npm-registry-packages"}},"3.1.0-feature-a2a0d3-la8etmg2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-a2a0d3-la8etmg2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-a2a0d3-la8etmg2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ff86c6f89d73040935189f963c1026cb2a5ee163","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-a2a0d3-la8etmg2.tgz","fileCount":1067,"integrity":"sha512-vzf7d6JExO/pQQUraA8EpFnY9TtmAJ/4kN6LOkcujk4RKk0oRo49rmXLcrTyiViY88YrNFPiXM5XLCfKMNxIMw==","signatures":[{"sig":"MEQCIAElrLzwI4gAEJ+Pz4EXKnZw15Tp4HKRipnRQ/CHrR90AiBzqi5jmnN/y+RRk+7EPSDJaGmSB6KL1msBQLKGZgqmSQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjan/3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8wg//WfBQNqTh2xhbaRTHIx3xMm1ub7S6epkeHiqtyD70PyH+72fd\r\nDS6N7m73qm2uc5TgcnXUBhkCRDQ+LT6IDtiRgmQzbP2q8xEcBD7grJyGq01E\r\nUPkezIsJ/fuscCsf4rITpys5wPIvyM+vpOabbCmfjX5G8kxymU5TgNvIGp//\r\ngxexxTSdGNriMwPDhsVuXWAUSW1QEaZVgt0rkY06y91kgk4AJJNOvobH84KO\r\n5gtkkup5ojyG0W/7n7RZunUXHzYEVkipDetpPj0+CQvEQ7jSKuxIbCw23NR0\r\nnANzosgUahPhvmLE7UZSQNq9dWWzeITTpyyHxt9e8NP563uHaJjFgrdwblRh\r\nav2DXHPHTXWp/GPwCFvlcq1+yN7UFB5rs2RzpyfU3VRpBnlV1FehvAoL1Xbg\r\nlRy1H9cVKGFRr3t4U1Fp2I8D3ISiGbBrIZAh4FCjGxvjhyNR1PuI3BqI4JXz\r\n+4RsfRy6hJMpoH4qC3YpTob5BIINuj+o+BQ+l/G1HG1CNdhgB5Q0VTk/LSq6\r\nfXRxvZ3fQi9I2DpAdTvT7+uMWU/WapWcvcpu+6uUhk1o/NKMP6fb6V+XuKMm\r\nZnCsZ/Yq3QLf5hv0KG61uySLMr/mmTazzpxm4jwc3x/wvhZ22Xd+PsARx44c\r\nGHi1/fstEkrg+rxntmFFd+NGXgeUw9rdXr0=\r\n=GGfk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a2a0d3171a862d2f297bf59538fac5a36f19e792","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-a2a0d3-la8etmg2_1667923958860_0.2623337535711969","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"545f4335296551280408e03924d164dc3a574fd0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0.tgz","fileCount":1057,"integrity":"sha512-tVh/DDy4/5XGKxgyWrmZuqoncCjrw3A8fQCKTpPwxu6XrbEuXdHtTqKAP8BQ4aJT9qrjAWqhYsDlDV9sdLwlSw==","signatures":[{"sig":"MEUCIBbtFp2sKoja0WlMecPIsEGJGubwi/86i81rAcarYe4UAiEA4T7t1sITKrDYg6e53FN0SwJMkT+SsVZaatjnVzjmNag=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja1nNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTNA/9Gq3WFMRml3gldZaB553FnS1/Ovakb09emDWAgdyPrlrdC90c\r\nvt5i7XsWPNGOogu4qDVQecvm7KBfQEoBelRLZJrkLZwCl/K2+E8YHkJcpGW5\r\nYpcSpPjr6U8Na07ktG9uUmrDTMMKyp7AvhtxyjB8xiWAY++n8i+lfzUHqJzr\r\n/g0T18+af099WeT/AHx+riXXszCVzSdoASTa4UzOJqb8B5WypQbx+fp66nMH\r\nId0Oipv0nalnjtBXkwPhIFKqf2NzhimRvzvsLOhFJ1qmybb8KY+XEF21GAyJ\r\njC95W41U3rtWqnFgVRDDXjD+2rHaSomVN6457jf8bMfKPOCp4Hb2O9iMKYYi\r\nkDsxdZCAA7X1AO5hQ/udTNlWprZTqw7Bq+WzY0VaSCf8Tlp9RSeJvbuxhIjZ\r\n8ADSDEqs5/9+XjnM86e7KLwAkjjIid+OnW8yEIQ7noB0+fLBcVkm4XPFP/6d\r\nS+oYrAhyLcM4wysGFEDdiInYQAhVmdBBomgIrjkoke+EUvAZ86v8WwdFqmIW\r\nWcf34zyTUBmZ1j8DNx7535G7neQCZWupBqmY4bttTLIqtQP3riLpQSBpJKY3\r\nh7iOy/GLcmPvd9flSCUEkULr+uSN6iYUCkAp96GosKbhAM0KTq5xyVS3D6Ay\r\nLUwoxuS8DKOGmdA1oq0QLr0xHYQTjzvetuk=\r\n=bvIb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"394fc02011d7dcd496f59d6abdb74909c2aa3944","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0_1667979724680_0.20777145613662884","host":"s3://npm-registry-packages"}},"3.2.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5a40784c1180fedf6ae63c8335f789a361c2a388","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.1.tgz","fileCount":1057,"integrity":"sha512-Iti3ja9BJDQyRWDUxz6ZzklGk+mBFnj1c5Ag83X26SQyI72jjP7YlHv2gRYZJcLX2UOmTX7nZyZjBgZaW39TYA==","signatures":[{"sig":"MEYCIQCqDtFFwwK3OLLzFiKQF+OWKqkn17PzKO4TYOHQPqxiVQIhAK2SyQD31OSktlVsOoZS8JL5Z8tRcS785evnkNTZGagi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja1rEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpl9A/9FKaxx6Fs3+0t7fGvPJXBpRIE6V3XdC8D+rd/dpX+yMplHT2D\r\n/D1IgYAvoiFivktkF0yKw7VPrgvcZD/fi9aFxxNOR63YmbAZsXMkxLO8KiQd\r\n8dYIHctSAfK5y4xWL+CBie4snpKBYUgk6bY0Pygzk+L1VM7nXVJS36X/CVAx\r\nBrwhILbXpQdDu/PMocuoCQ0nWiZ9q93jKKuJW1EyudPDjTrynG6c/Sdm3Kcp\r\nKCNiOIb4TYMyZO9lRJ2sbiXs6d7sK4MHG84bBizmO2fBTBVw/xrzhMeAyCe0\r\nDy1HB84mzN5lUrHhi5/FY8VObJe4LtscCpYCf+yNly7RCdwTC82CSUK10KEm\r\nCFWj2RgwmqH5EKvIrjtdrU+L6H0MrJuQsOOR51/AF3ZeNZde9VFmSpl8iTIV\r\nQEmQFzkC3qw946BCHRbRrGrRUBEw48nruyD/xuszKCihItt+Q0xf+y8+3Z/r\r\n9AVISlEuYd9goY6BzegbWIOG1YzIAwf/BLWXN9Ko32xmaH/PW3Qbdtm9dzol\r\nnj+r5l+Q3uaWBOlxReyj0jkLaZcFV9KgTSObnbJyZc0R/KBv5a3nc/DCjjBC\r\nRuylfDIzNwmsZER7d9MTfuDLhM4HTbNepraqyfSpkxk2auaeric06J8JeR7W\r\n+suN7YKp/3TYv0vCGAY2PqJPWkkXSgfdQQU=\r\n=YOKc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"06edb6c2490c0b85f570b05ceae062c7a3f9f2e3","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.1_1667979971824_0.7550154270037275","host":"s3://npm-registry-packages"}},"3.1.0-feature-cdb705-la9d55ff":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.1.0-feature-cdb705-la9d55ff","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.1.0-feature-cdb705-la9d55ff","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0189e155405d23cb0f036e735de5a5df221f8308","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.1.0-feature-cdb705-la9d55ff.tgz","fileCount":1067,"integrity":"sha512-Q1NmkYwElSTNlpVDZzCi8LJEH20EEdI30hyVcCHy9kEX9TJap/BF5usExDxZ00Xdz4gyGTrzZlwgrMzObQg6Bg==","signatures":[{"sig":"MEYCIQDP8qWQGrb4Ag5j0g6SNS7dCn7PaDeVU9iPXj/rkrciMgIhAJjN2po7tEsROAiREr+gd6i+GGTrkYqMhtaIo+R8ii5N","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja2E0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBxQ//RlXRKqAlIzYssAuuCH6D707z7adDckVO2xOEj80783wzuCdW\r\n7EkYMLvbknlNaSaWYmIm2DHtR3NlypnmaGmaCXcinvZQ+PmMzRMOQjVWat5R\r\npSvcPb7WIihxe0TndPlGI7F/di689KbzAwjcVxPFyAfQY8Lp68D/AtSPE8os\r\nFPfNe4e8a3fjXIdS1l6j67ksdmUnAYsPRA9OJGFEKCXhDrbnHQQgcH+ZvnJm\r\nR8XGfg1GUiLpMrAquJ5COjLUjNDprxRylxuZdU9XSRMaxcTDYT1rDQooOXpR\r\nq2ya/b1HnRRMFNgNmBVruUQYY2Vo4qgvVYSQumTTd/QNnfkaOahGEaoS/8Vt\r\na5KbirfoYSeh4DiXwd4X57s6nIPVz5JCMWXanJGa87WHeKuYqU9KjGhDWjIl\r\n/ENZjSPlz8pVYn51fUVvGGMUtRnqlo4+ppohVGTa4q1rgU10irdDvsZItpbV\r\ndhsLQWSThVCKLt9rp/tr3iohqFrz1HrMpljN9mVf62xJGnQhlLKNWdOR9aWK\r\n/ordPmRSwy+rU8Qpd/TRUbQxdIGbRq0+0OXP12d2RXX/bNQUx6bm7NagetLz\r\nY5T98FerM4fZ4jR09NQvtKxBdR0OvoPrGzAa3n/xRl33MZiPutQYnNdIzG2W\r\n6Vhck91c6pOWxJKjhvSCjTA/gvVs9vOija8=\r\n=ugJ/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"cdb705569cfe0d3bf481b6103b4816d37d9ccf66","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.1.0-feature-cdb705-la9d55ff_1667981619901_0.4551371355207814","host":"s3://npm-registry-packages"}},"3.2.0-feature-3fc75c-laaxxbww":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-3fc75c-laaxxbww","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-3fc75c-laaxxbww","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8395c5c208c393d8b0df3ef6ffad6b6d83b04d22","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-3fc75c-laaxxbww.tgz","fileCount":1067,"integrity":"sha512-CEByRDzYfGLI74xYHAoSYMc4TTb8HgPXc4LHi9e4UfcJE3qj0XCGoxSdVrHsgdnZn4R2CZCRCyhjrqiIty1HRw==","signatures":[{"sig":"MEUCIQCLv1lc9WR98vrJYXsbl1NF9pGUOBFdmHId8Okqa+5PyAIgIA27Xw36zbKHmgIG7avlbb2RDUg1CbfK5ueJwnt3qXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbNWvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjEA//SVPDZ3a4yOVwe2ldYS/tqBkeTb0GlxoZdQaPXnK+VgMnqEXA\r\n/SHhqVPdOVuyrdUywc2FPY3+aQA96274kFhng8yW7ccaYS5qHlMChO0InOso\r\ncoq37GBN2xkSFdCZjZ1WzkyVoerAsn4maoI+MBe121QykNQryr+ws+xX++uw\r\n/suMXcaGA97XolR+J5VJSv/kH52evmTvty4Ignl5d+dtymg+7jVSQa8SB71S\r\nleU3WXfgntXvRKK8YDKY/3dZz+HjDFi+1OSE+234rhaCty6FTRHsbMKQ1Uhe\r\nDUqhNB5VMQkWYBmv9OCyM5FMwtObFi0HmJ9fEPiRPkJjgQkqFLxqlqf/qesD\r\nTE78C+oLv2BPWAfSBStV0ZawM7AhMNdfI9y0xCkztKJgMXzPR6wRjhvNULyz\r\nYuWHNUhBKxY3Q6iZ+3G7RPT9Z585Mg3Is9uJ/ZG3FGWV3ufidi64iPFBNz1X\r\nqffT1xuR9PJIfmqBWav0tef4R+CY4LjZ7nim36umNMUy2gQJj+epmpp/rVD7\r\n2jm2+AEM4gDmI1/K3tRVdG/ghcZT+thNDWDFfmz9hvqOOSGrkehl1rJnaVwL\r\niMaX1B5SabZaen/vgip9HQ4p6m0bCt60EToBpoofNzu8UKYy8UIIO6Uos7G4\r\nT4iaGMIHC0Bjl36AgBOyLweJem4ieg9/Yv8=\r\n=/jRD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3fc75c2dcc75215a25d73c71137a1d7d00f6189a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-3fc75c-laaxxbww_1668076975482_0.44802868056727885","host":"s3://npm-registry-packages"}},"3.2.0-feature-d4b7af-laay0r4c":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-d4b7af-laay0r4c","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-d4b7af-laay0r4c","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ce8b2c4cdee1f1d0741e99b5e120f5bb98be07ce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-d4b7af-laay0r4c.tgz","fileCount":1067,"integrity":"sha512-v6fcoTgkIqWG7GtqsU/33YkwWnF1KXAxUUdfMY5rTfKEchOvUj2Nl8VnqtDTiOYD0VoDkVjaEp8E2PHcGI6F3A==","signatures":[{"sig":"MEQCIHreXnlBHm4QXQLs7s3AI7qpONIeaTsQ4Nr3XJ81+9G+AiADHxv3Ef2HQSfeOpLbSOdelo1wJI3JMDvA/v//5mpqfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbNZOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQrQ/7BQpNPLCykvdXgIXQdvC4OeZL9ZaCNphd7PhQOgtNkLeJ8iKW\r\noX+k/KbnDwwNnWAMFG2s45ZOQrXOHXFQv6+P+eLIsI26irixlVfe6NJTd+kf\r\nYCtY4FmJAGJnhj8bLmjThaDY/2wTaC5s/VT8ytcx2V0CDGPvRthwAoQFPn+8\r\ngWtW62PpXmjaM/U4ebuxELwEKl2hvQo1HzTYa8YQARsiJufYySZz8FsqbzUX\r\nZVqBQlutHDgkn6BNxe+htHT2kQ6lM2jXkStuRp15V8kkfXvl+8BJAGNG0Vz0\r\nVFm83qnW5aal7Bi3doHNiFQT91Rh9vMbvTwURMH0Gy5lPTuI4m1TCP+q6UOO\r\nUb10hpw9HFvweGBNjBiJ9x319SH/04UQneSd3Chr9ZRIftWbOUBoA31nPAH9\r\nXK56wvqeBAoefx037OPv/0RDaN6sVLKwGR1Lhz1EFh8xkJFmoqXNAHNPFRRe\r\nM21eAPYFuxKXQfH46EDPPIOGVHrW3sSGWbnncbba6rkHBZVafdqAhM9jLIsb\r\nBVh46qpBsLzgTiFeZ6iHk8nllMqMAeyiBhgPugYst7e4pn6G6eSDJ0Yy+Bkg\r\nrgOMFfwwSCx95uxGv2KRlhmAFLeVjDWqEBW1A33rCdyPlymmefpYCa/GmXmB\r\n9urKB+7Bz+mlPS8I6SHeD8re7wFxkEnNccQ=\r\n=Cx1K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d4b7afff34b36f114c79c7ae2c105acdd5a58a69","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-d4b7af-laay0r4c_1668077133819_0.3999032329830443","host":"s3://npm-registry-packages"}},"3.2.0-feature-96b7bf-lac8in3x":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-96b7bf-lac8in3x","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-96b7bf-lac8in3x","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"005123983a6d0a97f4266fdea5fc1eb88716edb5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-96b7bf-lac8in3x.tgz","fileCount":1057,"integrity":"sha512-IbGy0FRtdxV72hXXL4j5xYHHFtIXC7OVLN1zZZFHuzT9gM5CakqE+rqcH+ut9euR6o5h3J7PrmlUC9+Rd87eJQ==","signatures":[{"sig":"MEQCIAvbJJL8YOXfbvTjiXlCqAyC/yIrd9mXlAuwDOWwbRJUAiA2Z9cds+vrK17zH/AzAEJlfK8h4s3hwej8hEOvnsq3rA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1437462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbgd0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKrw//a8EjwueeFwsIVBRw0V2ytZTNf/vxaIicv+St73i07kHO9k21\r\nezP8Ok8L5JH1sfwjzGwHw/vHzpiSleqTPyjW/Hj425teushqcDYGQQ1/aoEm\r\npi8SjXNM6TQYKm4yAJiq6RRC71EZMEYNVmkAe3uhr/mYjQRYklikjRZg+xYS\r\nYGaqvKKr+hFEwWn91P0Nj9qr3Axz6tj9S2QNvyxOC4nEsbz0470h9LtQnMXq\r\nGfr5Xgm8eSAyq8Pel1N+0tX7BdoNFyo2m0kOaj1xaxPbLKf5rmYbdMjBs7wJ\r\nK3hXUO5YBt5gtKtqo/PIxkdICkmQUccso2des9Hg6U9PSBbqIHCbHeMj5iSx\r\nDOJe+6hAKfu1Wu3nEptByUu/kMNeww+qNQXwE+0mhuvcBEcqESJkUlJGpsxS\r\nYpKcPnmQM1vCVh4vaED00O1yh0ags5K9G0uop+s3MVLGcraqO/cVCSGxy0Nm\r\nbCR0L1cDAw9FDkO5d/loofZFznzHsO+G1vkkL84ulsqMC8vt3G4r8zsQeUom\r\nga5iXziEhacNs75/KYFk9BdlachEIo9Tjr+SYnuBnJypSVroa3dfjM9iG1Gk\r\nzl6uqZJOWPPDvewFIf04kgE8dyHrWH7OGhwtgjgrBER5O61z0+c5erEczIRP\r\nvTqEzYV0b4KdsbY+YwRbQ3yiSkJENeJFJYA=\r\n=q7Gh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"96b7bfd5097d55510fb03905d540ecb881ccb260","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-96b7bf-lac8in3x_1668155252044_0.34631327076201246","host":"s3://npm-registry-packages"}},"3.2.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4e052e16cdd802c3839f5ae1859f3f0219024a79","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.2.tgz","fileCount":1057,"integrity":"sha512-AcuR89xFbqbgmHsclj+J3QNl6f0RxUqLS5woo6NaGAVjrkNuLrIkkS6ZqXwi20MJOpSh8SsJJO140/B3Z5s+mw==","signatures":[{"sig":"MEQCIDM9MhTIKGAsLJzfMlycFPxoEETSC6w0e/C+17b84avnAiAj0/Ckzn99wlmsxikLLJCiCWHnihRfDXfyCMzXZpGeGw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1432922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbgktACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJHxAAmY8/nT6ZbAvoWZeJKKTU7N5Zq1wO59gj33CsJWOSB8wRWobC\r\nPceUO/i73oSOrpukv8gqBWo44b7M6eMf6x5llM2poaTg+kjYTIHdCLeysQgR\r\n0ifJl7NdYc7rye7ailZQ69/gpa4iqATF0VofYomg89gdlv7G1y6nECWKtNvC\r\n9SdDBDNagHF1clgDIppfoo6W1dlfkKlwXBRAo5zfVzyzMDUsa5DsGfeIzSxj\r\n6oZzdNwHAWJ45o6ewOKOOodsy+7yVVP/zRUlLaJXfR03Z+ToJVW439lnA30H\r\nUJ7T8zB6OE/qLQKmejSnJswNb9YJSJkTWKVB2rU8RRabJw+SPi3ksP4BpobI\r\nCnY1ntJGeW4qBv51sCObjQRw4iRDFhh6gsNgPYNcCWv8ryP41mwuug1A0Bqf\r\n659GC8qt3qUz7DYMZqFqXuZDxThjWBuzHwaSeWfN3TNd5pRuSylu3FyFmYDL\r\nILkYbxN0gCI15PA/+bnfajGxtthSHUIWezayw69MNej3WxPhyB+/DigiyVPl\r\npAnonXK20jys/kLPGhEGYINfyepwpNeZWW3tl3AY3OrdDVNaStK7HhX7FJAO\r\nam/TztwqLgs14PSljfXRaZmam9Znicq3AjmEUZfH2grJLyGvo5h6U/RP+K1f\r\nP79t74a/ujfVcy0YX6cxeBUozSxuiO2K/KI=\r\n=XRF+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"afdd960d43fc028c96b9a8b0ec025ffd84aecb35","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.2_1668155693168_0.3149269006224886","host":"s3://npm-registry-packages"}},"3.2.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"51d253b3c3570e5e72abc61ffcc07053916c53f7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.3.tgz","fileCount":1060,"integrity":"sha512-rmq8h5/v/e4Gx+UoNDTQDXXuQQgEbafd9oWziGykzI5OREu6p1kFLxIijt9aZ/B0I9R3e0s2cidCaUIOGSnstQ==","signatures":[{"sig":"MEQCID2Z7yVXMM58DdspC4Wb0HFVFyY9Y3qzXJ3shjfakoS7AiAJ8OFJ9VImAR8SIe5Qrf4dHlZ6LMxQ1VAWVNVSHqZByQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1441096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbgotACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0Bw//WfZmK4FhQTEHs3h0nLmLW2EYgDM9VtVr1Wg+CvSK9OeR7oRk\r\nEOQI3Oj5H5aFi5tl3yKPjvXnHRnTk5LZd6/gj9BdhSY1f4xMDBY4tcLpGvyq\r\nQsI9S83Zo7JoNYwhnVf+Sl3TGA+3Sl+jGyXxPFx5ZtueVfqecfLk4Z0WygCZ\r\nEDcDBfu0nExu2ROT4jyf5xJx0MbDHhEtp5o40RefV2eTEWQ0WbEKWHX2bmzw\r\nQkfDwrPr3ZZdpxT1qFQDXZiiEX9Hd34f7X6yLKGBKId3UIrzrHKa1GS7xVc8\r\nbKRkzCwduaHdFndPHml//JBwaoPJcjR0Atbyrz1M00yB5/Xg7q1EctjeDCLb\r\ncOG7KkOS1a+KRRkMFYkEZZppvFjZxBEOVpr6tJCLBQx+tmJuCkgtoLc+XmvZ\r\nIcZTGk45uM8nc+VMdpGz/Ye+uPYOoToKinViHRzXeslEtJ659tyXICgpyaCL\r\ndjsgwyFawAi42mL92h5rMo8Qb8vh5dFQucb8ZbouadKUI70Qa8IEJfT9OYJT\r\nvzNMKAP6TQbidAvZwJJz/krCfS5WbKe12DLwZjOAJQUFOrcWXPae7vQgxKhk\r\nk76HURGBqHz3ABLf+btUmzTTO4V5J9Gb9NbSHTEXKQ4DHyTfNzCcEdiO7KSd\r\nj+0I2nhLf8MlcR2EyLrRWfn2Z1sxmWxZVgk=\r\n=IyWR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"75d77e29641db448549155559e532070c192d7dd","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.3_1668155948881_0.10515439359987822","host":"s3://npm-registry-packages"}},"3.2.0-feature-2406f2-laght1vq":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-2406f2-laght1vq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-2406f2-laght1vq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d84857703511b24b8056e9b5bdc8fbcff656d0d0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-2406f2-laght1vq.tgz","fileCount":1067,"integrity":"sha512-bBvJF1Co2Hzc7iIZA/8GPnWpWSBjE/AjHLjYu/eWvPEQ4x+EYeje7h2vmVVZJMrHySyGRDgIsCp2pcwTy2cyuw==","signatures":[{"sig":"MEQCIE/Z9mXrGQysvtBRYq0UG7B73/5GLa2yP5eQOpDmaDHGAiABVqLC81FfqEbyhdcsUA3yW1CPOJniMbfKe8h7g/n5og==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcfUeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRhQ//SRQ8ywqaJOfIFieVo94UOLJTcDU7G3jveeuPV9vJQRONVdoN\r\nhcS7t3Pq8maZsOv/2aJtjsw/XgmeKYOi3NumTPE+jwKcJzjDx8FxOOFUYePw\r\nw4dWdtMKK+jWuUMjooVHycS6pO5PeGfLZKjAl7VrAyybDPHMz+UL5bqTXByW\r\nMT3E0PPComdD/r74gAinI0rSKn2UAFe8o+25mdBQEBKZLOS/fNEXdckBhvkD\r\n1tuXzFMm4DJIX67RunnS4BO1qnpF5eKtHw4q1nwgRC0i7LTZbrcdpKteCg6r\r\n6qpdMm7wWO/MBd+nOcyWGLxdOU0vgNk31G3+wfrpbdYPn6SHzwrigByrqnTc\r\nALU+Tcek5o7Oo0S0II2nIPnUJ7CRkNiv3/3mfem5BfXMdSfLtsd0QuY67nIE\r\ny5b544ea0hCbW77ANJYg53mS2hkerPOJxxeBN/NA0oE4igP8M49XoZI1xULa\r\nM0HGDc6sZxzZ5LsFQ1DC366+PT2ke4eiNHpzkiBV48ICN70XReVLMrijV9dS\r\niyJCKddbh0zxotcmL0+WjcEIBXxg0Mvq7ltL4bziSQbCBWtAEin2Bi2kkLmo\r\nYvZ9yOceiMNWG/B4n5kbulKJjNeX8o8lzuGszs/fn+2NCnwgMNRkQsNLdsc8\r\nTo+G3IEUCUgf+0IxuKMfwJVmua1t4C3hOSU=\r\n=RSqs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2406f2a49e9fac2a5797c32eef32c60258622f39","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-2406f2-laght1vq_1668412702412_0.6467266220564214","host":"s3://npm-registry-packages"}},"3.2.0-feature-99cdde-lagupalv":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-99cdde-lagupalv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-99cdde-lagupalv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"21b8823de7b4db4511439a636f706cd28cc06749","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-99cdde-lagupalv.tgz","fileCount":1067,"integrity":"sha512-0tDJ1XGTmy0UC2UdM9LeFcu8088ryp1B3XmDavV23Y19eD+68zNBIQneCuNNhQHB36yw6hq/rFjdtSv8/3CLLQ==","signatures":[{"sig":"MEQCIGP6f46ptUGEG2WU8cgOFqq8hwJYyG36M87WjtpF8X+XAiAUldpI10kQcV1roliwz38kgfo6KfH4+CBQDkMPSBSAig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjckm4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2oA//aV2pBDfvtU6YvtxSVlm2Yn4HPjBHbiL3EkPAtID2A+ubMr8L\r\nEzQE3wyavdOUN9bOS7M5nI8bESo2EhGrYKhIORHyMJf8wXSMbA6wts9amhdb\r\nJqYmaPMNonJ8Cl4Q6GagBqcHjn6R5KfGQm172IQDjUaESodWBli73APzUlUI\r\nYLiaK1s14qLV6NkoC4tAOP/zJ1YYii9C7augxvJ9lS487E3axBLMb28OAL6C\r\nWbuDb00GcvamE8rgizKPPuCHp3dmM/S+zrg+KjEoPo+z1H2b8nHH6Y7qcQK1\r\nC7l+/+bg/dG+dsoRowDrABJukHaIwWgI9JvlgJCUIvWQwf0yemQy6vVeQHNF\r\nxqH1L5nVlLFbgeqauj4cHRkUXrVLfxYbgkTRV+LA6ns82lwxTPIDreJFu/z2\r\nM70+fFkDfby4zcZpLv5b7pda1HQOmnVjVawg4UIiXPWKFULWoWdoQFrmMraB\r\nwkEzHwNh6boCX+PVJBD8ZWeqfHTWwn/Wsm91pkt3mGzsVr7u4U5En1SO8gxr\r\nUuPZxqLl3t5wJ1hGW/bQd4FVE++azjGe117dcTwkFFhaolGIpwMFA7/1pZdN\r\nfq1OQiB+mg1dOAEv8mpSorbFOZqgNlexaQRbFJ+UmBcX0RkajDz+PuZKOQAq\r\nKnkomvv2+EmYzZQv5ky4ML7lkSNQpqMeUnk=\r\n=2KsQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"99cddecfae41bd5488e74428b86a0257c920cef2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-99cdde-lagupalv_1668434359865_0.7355620193858556","host":"s3://npm-registry-packages"}},"3.2.0-feature-8667b5-lagus9jf":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-8667b5-lagus9jf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-8667b5-lagus9jf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ad47e673c0019f0b216a94ec55def7d4fbae61ef","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-8667b5-lagus9jf.tgz","fileCount":1067,"integrity":"sha512-AaSdzHKoSzigxRE6RZeHeGzqKXr5i+YIL3bwHMv409IBzXIy4AGizOT2g1bThMvBoK7LLR5islV3Q4GCBrCWJw==","signatures":[{"sig":"MEUCIQDpXXBOwruJ6gWrkA9mnU6NIiIJwH3lBnK++yMLEp6TRQIgIgpzGwEu/jTLF/Mn2FqJNT4BZbCpjLGZhLJCOb6XsRc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjckpaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5EQ//WnBrTwXxr8WX7aHStHo/ez19YAL+4g/XLwrjMc9te4mE6Rp4\r\nQTSfAJHZozezm6gsPxf8Oelenp4U2xlOmp0e9uWe8WL7gDNF6BLGnviesMgs\r\nIZdf3Qd+AB9Nmw96Y+8wtKXD4sz+MVelvnY31rPJon9ge34x1JKn0IngbiQm\r\njPPfvPGWhCiNoJCxZqMvg8H9MJew/RTPiuq4w3FNJ7Sfjw4O9Rn0RyQFdmHu\r\nUL5FO0D9l2sUqrWCMJopa/HX4V40Fjm9Lkd9OSBxpvSRMOLMb2eYdqTHVPfp\r\nIu27rTEi7kVGtz3EMjV/i8IhOf9gg0I82BTvL4ZrUH1OnfWETJuhBsmGbdjo\r\n2SGl+cZC3a57U+bkXaCL2QNCPg1Pxnka/bGOrtD1zC4rWCV8AHIMPs4kTUxs\r\nc/+G799ub9bCemY9bpI5ab5PeFTBEnXSMonAjBjrAIcX14alEOo6BGv6mjjx\r\n8snDESIJue5+HYvnl6uRbWFYtKoGuh7fSuNZeP8N7UXpiAJGAtsoe8CI1jq1\r\n+Ned+Dw8Uf4dkPNxdx/xy/IBx1d7GObEQXPOh+9Wi4HZDt88R/ec+HAohtAr\r\nJXX/1LXEhzSV5AlJHxQgmj6agN5zEjk+Qcd2fTPyI9AnsMZgPZ6qNdxWiBqG\r\nZ7RZ8Y5NjiyYfge1S+x40Z26IXZfadAs1Uk=\r\n=6vtz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8667b5f7c862d2f7703cd5c911b60bf9206691f9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-8667b5-lagus9jf_1668434521961_0.5575286659568539","host":"s3://npm-registry-packages"}},"3.2.0-feature-e40010-laguy95n":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-e40010-laguy95n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-e40010-laguy95n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"32e2dca37a48d3c09bfda7690adc01fb97971fd3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-e40010-laguy95n.tgz","fileCount":1067,"integrity":"sha512-OhRIMvi8FcK3MuVQorcftitpkqYt8LeZjeHgUgVP/MkMgewJM8S6ZPz2lXz+PJOeDGbCsX3MY5VVrUF1fK8Pww==","signatures":[{"sig":"MEQCIFsShPH0weiYJAB4lv76bv12hK6NXowAlHkQO64PbL3iAiA2wRsE45xKOTyGqtsWsFXnYF9k70BUlaCl+jFB1MEq+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcktbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmocTQ//TMC4IIOez1hlorb++Dmaz2uaITC72xP4Mts8QynnbGUin5H+\r\nyigx1eETP+3ngOcdZA7d3EcpIZ+iQih3RgKAU+MpcnF2XhDz1R9XrguS0MR0\r\nb1V1KhDYyH7/wlB0IlLKXlxLcxmgbFBHMVEbxPsSJ4g/h5ZtI8v9YVo19len\r\nTO14kV4iRjBH3rH3YCGG4yRJQB77AkocVRe8bs5xGcAe4ca0tiTssnudayop\r\nWhxTxLG3eFlqivH27qRJv1M1NGHXn6oJmZymJ5OH2LrLwPGd5KgKKL2RC6TI\r\n7pwyN/6/YY9ayGwXsJT0IMweRIrFOgIbO3y3/kIFp3/6xeQMu/Z1pADesmMy\r\n8oEZhSIkhMVYDr7iyxgkNVOtwMQu5oQc+8pEegWgjRgH7Zpa4vVP3gZ9OFVn\r\nywroWwaJYReaMjzkMUmM0xy4x2dG3wL+HZxK3ewzPibLoope6OEAm4ecthkp\r\nZxmxl7khzu0ROyJscfizmR+9e/rgp/mkzDRADPsHQCURcnDZJLV4Ye5mgO4o\r\n8CkdzvvidHtE1hp1NzzsJLnSPderZWaoPiyfU/d8EXTSluVNLyFplyYYjAhW\r\nlrAFeHkjS/A4yiHwcGRxWjU1qBxj978aYZ2gH6OTURlrSAgQAhdx6X66YVa3\r\n5lr8tBgz13Tt3CWoZ/YjSdLhh2StjNPwquQ=\r\n=rlf/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e400106a7f745995e36e68c92a0e6c074a45e949","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-e40010-laguy95n_1668434779150_0.8332773411471417","host":"s3://npm-registry-packages"}},"3.2.0-feature-0e2f08-lagvqbfd":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-0e2f08-lagvqbfd","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-0e2f08-lagvqbfd","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4d7ae597ecece5196c043c414260e3b9472be3ff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-0e2f08-lagvqbfd.tgz","fileCount":1067,"integrity":"sha512-5Qzvct6SXfOLq36J12BQzMKLkXOW9H+6WYjHycRHcYEdDMwKSH0wjSVhk8Ck4jW4IveGSdwDpk5o1l37lIKT3Q==","signatures":[{"sig":"MEQCIGyRUJWmRqyHCf5n7eiwE/TW+c1HybirQt4FFKhppsbrAiAnyWE2IvNWhH2vEolkQnfT3yLlfAG+5WTFEmKo60n5+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435371,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjclB1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpxeQ//Xgf1t15tf8pi8ynIM2O7Btto0vHZRhNPBtIFYxzGxO619Vvo\r\nbz7MRM/WDA7xwfTrL0BU92M3mJx6S+gi/IEJnLX2AI8gElFF4PuZB2WNWvvu\r\nbLpWOV6avwClTR6m22ENOr5vwV9FxArAIC7M5qG7os6sxE8CstOQxtcX5P5p\r\noNHNiBxN+Xvzxc/OZSKQJJTUNCECuTqILt+DWYan1cR+Ao3ZeRbmdMXHx/Ie\r\nh6Wm07ifLAka2zhjBSv8Or/YVmrxNifq4SKU3UZvxbuCyBVLTpguS1wDmqjk\r\n9HZnpp3u8dhiVdR3co7AdDsD5Pzp6kX4zsDAha1oHdPF4KEhHxOhTsDYroYs\r\n4jq2QUqzTXcBuV5pLjWIg2jF+a3QhuYH+d8Be+nqdAsWLY742cFlrCrhyTHZ\r\njvuDoLwc4Hb9Fnhu3ACppR0fVhxTw89b/HSqiWFK/5BBnucVt1avDUHxG3CB\r\nv81GNAbsVpITpV531b7bIKHBGzxH0Sp5Z2wI4LQocVYkYEO3OysApy9UqxH1\r\nV7DPjjgHbdU54mvLTRLIBNMFpmcPTMFGjFR7xIQQHBABrHx7Z2MdcJUh2i/9\r\nY1WPxBxANmWcFsjeHjUaon8tdt978goJHKr/LpLsK/osFeGjz+b8CvQz1laV\r\n9pjDMMOBxamtCBH7yGWlpTbSIOW4OcEwHCU=\r\n=pPqt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0e2f08ea9a18453a3909c22d9112747f2efa1914","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-0e2f08-lagvqbfd_1668436085198_0.5939715447552112","host":"s3://npm-registry-packages"}},"3.2.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0c4dbfb2500b2757ddae31c92af118839237b5bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.4.tgz","fileCount":1060,"integrity":"sha512-TWCl2sf2Npxlu5tx/wVW36lL8Tw/BbvQgPto1BxPD7eocsuiw6daEYpekXA11eCbMgeDmCf7RqHV7Vc4G5JOyA==","signatures":[{"sig":"MEUCIQDYCOnfwdIVjZmv1Ku2kzwCoFz3eI5k3oXh8Q24TLa9CwIgcGDUGwLXTSQgBkOTmyZFVqawp6p528NY4jh7YtJflUU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1445620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjc0Z6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/NA/9HfM3BFZLzqMeTORtkObYG/6QjFoDBkA6AD6BYQ8SExLg2EFT\r\n4m+RB8NBdljBu+GrB2QQDibXzT7Yr0ROjWMjFWh7uxNiJvPaqiSWUDzCCur5\r\nDbXSKQpuiY1QtZwssSi84oBh0ncHujJW5oIV7rZoQGuzd+gm6Kk//XJpnXfk\r\nrQPSb5Myn+08Mvok+3zXxrZU+uDNI50ISledglfTlIG/ie7+K1rBMFAqfEZU\r\nruQ0xaTTZt3CtQhE5M90/PZsD2IfYZnUl4Cgr6VhPhO0CoEak/gkel3c9K6l\r\nESJhTbLzxfnzlURlR2d20aUK2MPtzTj+EpI4IBOdGiB4S1TH+P5w+3DO52aL\r\n0B1AbiZjqaKEIe1vs6I3/Q3d0Mu2Jx3VYu0My0FY4uYKei9LLKJF8YonZS/u\r\n1Nh34KMwdc5VuoZHmKC3r6gRixpvMvU8m8ZFhbMJ9X3/N4CleA5zMNt6yg5k\r\ntizOSE/nuTz1Tz78RMtsthsE2suAeWdzIoX4gSRZWc6y6JZxv2ZcK3P1rTvR\r\n8rths85fyOEqdjlinrvzPnZqS3Mn12GQxSeYS37QxMVrVRE07uqOagmURV43\r\nia7IZb+DSZdNnuV8Nwjejb1or819w2GFShBc1HrFogyXdJs9ETVg3BPStHxw\r\nQ2sFSIYEEN6AM2epw/f5Mhnw3BkPpt2NlYM=\r\n=C1tK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b6b45cbb0282e136b80588cc8fe2e0903b370b6d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.4_1668499066231_0.9168287926764298","host":"s3://npm-registry-packages"}},"3.2.0-feature-33d000-lajcw2g9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-33d000-lajcw2g9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-33d000-lajcw2g9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2e1391786b7781d2331f087422cb9adce04ce0fb","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-33d000-lajcw2g9.tgz","fileCount":1070,"integrity":"sha512-ed/ozj+7vB490xugSzau407eCfL5xyLFX+cwm3dpbRg71mIR/smwanKyU5FBbo8WHGnO4iY/HlqMJXB7z/Pk4w==","signatures":[{"sig":"MEUCIQCBr4nzgZSSwHH55fusbh1XuRrdJ5XAA9Shm5f4VqGGkAIgJxu43g4nrgqsEd+zPtriqkpfjj73AnJ5BO9WQwB7zoE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdJmJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqI7A//fVa+t3Wnmaq5QRIh7BH3sgf6f2bsL8r/j/UIWQBbhuSDAD+/\r\nnCIC66LNhZSMYhtyK8zqQYmdKM84ckQ/JHTlnxpy/kEi1GA2i0qyMBMIaEYp\r\nyHNUd23z0jt0Hpg5LJA9AOPPPgzQ/u6BJqZ0cCcxSwjd2mTs1pcpFBi1esGE\r\nMxyvxYUHN64B90yXyDgy1y5GGWv9PvF2YN8l1vRqc5Sjg4zfl9tdmK+ZDqqv\r\nWns1ykG0tEyCka4ryD6YVrWOSlHjyy0+tRP/Yc6xv8XGiAJ031xjEHHDvyHY\r\nHADoeXuqixfNlxyeDPr6gTiAtI2vitjkrx1pgxzRB/IJg59DLa0HD86AO2EG\r\nWJW1v80M0RQTpRz7PjeJ/nJIcxInwrN+d+iQdFSHrylNPTZYL2DeykhPKjE/\r\nxbkqGUJsuP40YlKNcYOyx+/SkKYhphfOI37Ti48ybcmYTZlJx6Ztwjt2FvZ6\r\ndo9ebd5g/GL/IeSjDgkrNB6dmFh74eWo1YExTK4ddaSsaPWlLwUJtgNFiRRA\r\nV8oS8SJpYGburS4w5x4e+o3OSwzvLUrZO0DbGXsfPDAhoxECfEQh2gqwhrXm\r\nZ0sykwSXXys6OZGEzdY3ZRr9Hghy/jzIfrrmjUWuSebPEA5hNnjQgyPvm5i7\r\nsYlVOAEFnlCCBLBg/+JZpJzWs6molNKL9u0=\r\n=P/PW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"33d0005cc41af1c901f23c326947a3e8c990bee4","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-33d000-lajcw2g9_1668585864782_0.5976598957459824","host":"s3://npm-registry-packages"}},"3.2.0-feature-3fca8f-lajfijhu":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-3fca8f-lajfijhu","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-3fca8f-lajfijhu","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ac6e3ab69fa8948787dc61741aef4d759fd387f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-3fca8f-lajfijhu.tgz","fileCount":1070,"integrity":"sha512-hMUV65xeFNSpedBfrF7+TSqNTqqnLiEAX0TxM7Od7uZzqL2rl/t9vwKmZDyOoH48dai0Y343zmpn7P3azEd/lw==","signatures":[{"sig":"MEYCIQC9wXklwOYe0lQgXWf6YrqscdJZkq+cqRCtEevh1X5OVQIhAJQXhzCYRFZUiEvdjpgrDDh/BFgG34tF6FNxAU6uv4b6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdKrSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo04w/+MNsb5qO5gzyrJx8jm3zo1gNwdqg/oRgz2UbuubDEPuxBUgWt\r\navBQfBdPyeF3DxQEJkEslgwC/S54MZvSWvOUvg4yGS88tk/KNFF5Jhd33QuK\r\nV8SC9hHuj09im3wwtv8cfdz87WjnYI1HyeuDRpqTk/aHWwyvnivfqXcn0/7E\r\nlYnIvV+2c+8qeWZknNhyNmgit1ntMFHgYjc5bFflCJEvG8wQHghbgxH/sc/L\r\nPZ6mdff3h6eWOr1zCkw228M7wj9D6e4mM5G+hWv1IX5F8KZb2jE3dMPS2w74\r\ndB8lSeVpvmlvs1j6LhhKOV9wl5p9DNTuw+RCtzFhoWRVpJMXZy3Ol65HxyoO\r\nwgsZ9vogKdxrVzku9d8gzkrV2e5+QrSKKRWelT1iDuG5etxtqavmanUjlYLI\r\nH7Kf/1+fnsnHEKt/Q2YGD+FVca87aofSnFp2MKyjxP11iE0uxd7aegeCjGLc\r\nFNBdJldWHHitMUz6ODEgRHDSht0wNPMDJrfQYbGAIK6iICjeq/p1+1SEc6KK\r\nw9V0i0I5dI8Di9EIGjJIj+fIgXv9hGskTHOxkHiDvvD/9oUmtQUnXqaElog0\r\nl8aZ2yL+8eLadaEU+adsLQ5GqSHaj3Kku5POyEj87pB2wXQyBc/9RrCtWQeo\r\nT4HDzcL2iHSd/5pNtYGGGsvyU9gMKwlHdFc=\r\n=SY29\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3fca8f37bf7d7c3a2264d2f77f7c1d450ff730e8","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-3fca8f-lajfijhu_1668590290069_0.04804908117818574","host":"s3://npm-registry-packages"}},"3.2.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"edd9e4bf46760b02e7710d420503b8481346c9ae","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.5.tgz","fileCount":1070,"integrity":"sha512-r+vXJ0g4BpgRYt9RlyNNpn8YW+NbXzt0CjciVyJzdlGM/p3EPbu97vAt7+aEXzDzXkIUcSr/9QadKCwTMAPvhg==","signatures":[{"sig":"MEQCIFnlIIBzxE+C/9yLpMsRng/xNMlhcpdpEyZ4wjaIFdC/AiAXuVXyRERhH5CtHAfhPZigd5ny+EXRIUVmqauO5/uQ3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJje0PVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqv0xAAiAu2d+X3EFjos9WJYW/DFMSJJq1p3AF+tIeiaPtAz/CjUHan\r\n6XsGZ64ozDE4Jf9SKTbMjzhf9K7TnjAbK0rfjdUFobfnLbyAM0HJxy/gmGqd\r\nxX8UgsinxL+Sqw2Wr0CgMKceXgSyhl7pkwyWW3QLZw1EQ8Pc5mZA8hNlwHQO\r\nOE21Z66M+uYMP80Lr0XOCXJ/z2/FrPybBIMyk3yF1Va4QpCWD7Ti2gXI/GgA\r\n7SYTDIUPzs5aX0BJRHu80cXbhQ8bGOhKG/q6QxpHC8nBkLfA/glNCRcrOMgC\r\nzV7uPJu3HWhWV4E5AazZdQ5USr+2AY2mgc5HwwyNecjt1fR/LxQ5/jXQJHY3\r\nf4yc9SIbnNXEKHWcOsnFbzfXTvAqr331LD+T+9q6zwx043lBykz5Ab9sJWxD\r\nfHNlS+aiYTkE7h+9b6gcvLNWJOLP1FNi0z92w5A+5JVaVPUjrM/ezytOtyQD\r\n4alb+oNux94OK2r/49P/oi3W/HLoFdtceaNwqq/4I2w0CyCz4NbPJGAfb29Z\r\nYvfHpaQmu5hX/44wUiZkRSuxKGIHbuXMFYE1bOdzmpQIEDjfxB5ZhpR8d9Ef\r\njBy7Ynx9Z5b8/8uWs+6JMcVsn4Lwa3bAMldg6xOqfmiYIomkW1fZ3wE5Iq8e\r\ntFOx/JBr4hK/Jc7OCriwMJkCsEeaQhI9F74=\r\n=AfJ0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ae63af414f60f3aae778dddb26572309e983db13","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.5_1669022677283_0.8621886375942731","host":"s3://npm-registry-packages"}},"3.2.0-feature-5d580d-las3xhlw":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-5d580d-las3xhlw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-5d580d-las3xhlw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"be0e93fe72f5a275203c0aa693d702e2b7402e68","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-5d580d-las3xhlw.tgz","fileCount":1070,"integrity":"sha512-PaOpBDtVSk7qenC6BTCJyE2O6zNJDK/haRw9UQIulKH9+NMK3lUNXMSkIT3g1d/oSPL+V+3tcnJHjj9ugw6xEQ==","signatures":[{"sig":"MEUCIDcnJbs5eMzfIq0doZGUhjIwsdifYlfVgNwnidEnMk7wAiEAwq8Efr0iCA0ov9nVedsl6cb0j2diiXkPPX0fFxIXZt4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfKyIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKMhAAhJUt5BazpJrjOv9IchQ01rsJV3G5CzXJdcTV8m/L+jJu2iS7\r\n9BaQw10YQ8JnsI1poyxIwaRiUQw3cTv0r0+umHVpC5R4YTio1S3mjPUx7GsT\r\nYaMIvMTcygjF95DL0MydbWp9p5ygFzuXMx44h9L+3ju7NnmpgJ8SPdwO303S\r\nAieUvUq3C243wtUPJEEvgwJOXgeKJEos94dIIeMznovf9ZZanmK9Us09By16\r\nu9MhIFsjBUFmwFmiG+tcuLPlwLXpnaAPLVPd3RbdneR8YMH7zB64MUKTuHtn\r\nQDlHt6HjSWU4bm1GGDxPse3bZF6nej0ioAnPGrLL3Ff/AymNjN9JxGmnp7Iq\r\nfojuuQbEYX56Hl9s3wsmYpBP2SfYSW3AVAsMVd64lWaym5NBJB45v4hKRMdg\r\nIXreLWt/yOYz1Mr+DnRXuxwOvmCPeEE3JvliBDgXdRAjq8C2EjVc7bOkIW/+\r\nMmjGv9K4/GYB2lXNq/FmR0JvDjWs+ZRllfIdzvXf5uSK0wqFqVez6ryQK4A9\r\n68scYTdBIA2EXrs8oihMFhyDCRO/Vy+RliAkx9oaDtTaaHtvQatluuXpy8+k\r\ndjPpzYbscDiK8qMreKZII/LrMdcUUOAjmU++PzBuqF24CCQx8/cCAKfcqcj8\r\nPT8v1ww2NgL6tytnN9tSgFVz8mthP9/jo0s=\r\n=eYuu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5d580de7f63458c110ad5bcf4c015858e7fa136d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-5d580d-las3xhlw_1669115015843_0.6878001580984423","host":"s3://npm-registry-packages"}},"3.2.0-feature-0dee34-las7uzcv":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-0dee34-las7uzcv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-0dee34-las7uzcv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eacfb7d64f5f9bce49c50cdd482d12aba4bc5ab9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-0dee34-las7uzcv.tgz","fileCount":1070,"integrity":"sha512-VYM/wecGjtdm/quo9nIjp+TcoD0nhPzfQKebHrrtXKkJXDWoyv7VR9AnP+MUVj7/idQYbcRZHRyoWvly0NaNjw==","signatures":[{"sig":"MEQCIA0R9JYwiPn8jjztf7hAE7rYi+U632l18X4j15XE+vNcAiBwTYhCX+wxlv2HD+uky3Vc8Gc91VgK1MSNFBav5hGytg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfMZLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjFxAAml1KZ8fBiflpSemtcW+R8VGU+IbiWp2hZQErc+YyLotD4nT9\r\nNF1cnFll1nKhjZ2QITq8j5Vt+eiT7ahqP6+zg0Je1m839YaLAZypuPgM8DXW\r\nKgv3ilxEPk2k6qM66CdviY2VI1ynYjW1iQtp9k2dp78HqNEjlfH7KReq3CL7\r\n7iKyethhNdvhX4WPhXFRTtPMb4s1jNb04pCddsDzSzMEv9m2LkDK52QEFb68\r\nhqJwnxwONOYB8+0sIRC/jsnlW2jDT42jyulK4xeqVZrqq9vyD2FGogpID+Vc\r\nkujINiZJkDAD3OFC48L6s2aXFTz0NiMbS3QqapNb2DzTSSPvwOcTrGDchCBP\r\nJoy0PoH78G+o5AuX9SDStA8KgmslD4D1sY5R9N0zYSu64n3/h/I/vkMhmne4\r\nBZyGL6sCxJSgd8S+YAhAQAGWEE0YOOa7JXK297QNx5AbxRMdFKfWQ5WuCwza\r\nAbN4WwZw2KD56D7qpVAFJJl1k8l0/F5dRdTfbjskRCDaRwZG0r0Sp72HOw6x\r\nrRydCLnXYAod1v6Ej27iz7cjOGH8e8xdDdU/6+Jb/XOgdsN4UWsLnmRUTyjz\r\nVgssTikxNN3wk7Eq4MrdrypXbnfEQjvPYwRS9rAe28dL+6ltbbG4tMDGzMDU\r\nDFnm5Xl3Z5LgQUvKiz8ROqDpQoN5NfcxYSQ=\r\n=uDa2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"0dee3483ba37731d4308914b4f9a3c9ff012dacd","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-0dee34-las7uzcv_1669121610974_0.9515861790968021","host":"s3://npm-registry-packages"}},"3.2.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"492fe41d70f566bb6ba090fb7d7442dc67bec7dd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.6.tgz","fileCount":1070,"integrity":"sha512-cipsVnA5VGNWAHwywJ3S7rGSXvdNwV87agoelKgj1ja+4fVick6ZvhH29nE/BbTt4CMnFQTSGqxuO7jR2XDILQ==","signatures":[{"sig":"MEQCICKkDgJqggYRU6mZRPjPgr5ECMwohzrQu24zd/ldc9cDAiA0L7GmFhcIIWLIcE4fOM3qmP62Z5N7G9nOCveZ1NVWHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448026,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfyybACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreeA/+Kx43x4zbbEGkXsT/upzGMyR7GYVCsQgKRd55ZqeazKi8abEm\r\n+eEgIGFJbRgZUyxW25kzaPzo5cqYwMkW2BfiBGnrEVcqkQU1ylf2KAkDS0q6\r\nfq6M+bRl02jYoNFGZ4cTYWgHeqLmsVGbGZ3ovXHtIfcH3wwBAZ7F+3mf+imb\r\npUBGlB9Pr7ahkP6BE3CNG7n1ITCQIspljZ2Z1ex8tBoAijXhmPQ3JPVB9dac\r\naojWUoFqrFP+lTWmmoUZhh6TEXSxGlMssEfpKIienO8dLIgmfdIuV1DIFg0J\r\nX02JRx6DFyrQ01QlhVU7OLg9LbpK8zKxagRZRfqMXqeACFyKW+j/Ll/90tTM\r\n9tPwspWazqmFF2Pp1/qzhOaKlgmogZL2Sml06hrZttLqOY8ZerzAmNw4LyxT\r\nVyqiWws8lx4hP0gu9iRosxbpqK48l+P5Ri5x4R5LNWmM4l2yvYDqMrsiN/Wd\r\nLiGYlJmhXvOWVIwkE+XadLR5vM5jg7ddzwWDY6XovbbMCRDIBdDLA2KPrCRn\r\n3Od++XoTfBBkeTh/osJymDfPfDTVHoLAGaEqRg4ZnAnkhIQ2OTWn9mPWKmF2\r\nsJsllRCq0+8oI7HVvI8Ba2tvUad/5t7DMdz8QRmeoK1l+gltLuk22pd2gKbd\r\nqbIImUB/X71SatnxWGFfgNc1lhApSKfdqac=\r\n=KRp9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5fae03cae641f3e26f1a1a2fbb5a357e3c66a2e8","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.6_1669278875272_0.6023892729905118","host":"s3://npm-registry-packages"}},"3.2.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d3585e6c029e84fd11e4e08f4159be9fbedd776e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.7.tgz","fileCount":1070,"integrity":"sha512-MLT4+bk2QjGbgLaO8FNKQ1SR9IBURGkOwjAhFqqmoCFAmjAiNLHKe+ae5kNoowdMYlxgYn0X8yb14VrAcqCM1A==","signatures":[{"sig":"MEUCIQCY1AOEsr95S39OMdMGF0vltkWAfFTnkMSEdUHig8To+QIgF0it6IUDo3fTl5OxcckIR1+Me+xVrgJkoci4vR87Ykc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfy1wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppvQ/+M1C6fkKPUVwI4nx6WjQd7KiRh8ONwU4oAEVw8N12HeoSag9K\r\n7W1ydJbyHeUm3EmwLT62CTRoUg4AbfsncX5QORJr1bkF7aYPvwwOICWSd3/x\r\nicA5rOX9fa/AIr9KeMLE1K54yqwZ9lUHl6YI67i6l+JqGVlLu/HzirKLaWp3\r\nGzv45X8+LeqV0TH1rsWx0VBKYNUHeKPv79N7GlaDKLJJebpFv89/vib72I5L\r\nt5bgOTgEk5yGSPm/GimrIhZ/zjr3mcYOZUc/zHrElgJrdw+qq9lHTMlLBTPK\r\nsaUpp7hzD3+DCbkrsdUo8dqH50x+Zl7BW42Qz+T/WyFc289Lk+I0AXwM+dvB\r\nSrY5gZMzI9GE1aGJUk4jIGACI0CThNNxBY2bFMV5JCLp5Pia4m02GUrYZX1L\r\nBl0JlF4VWwj93Dje8PWrkLNNjhG7imedNoNOFmE2mEHgSm8wGZ4bOPe6fOUq\r\niJSqp9dh2cQpEb2G84W6c3bNyF+Bq7LQ3WdkKwxp95e4fv44Sz6ypLIvgJ3b\r\n4wkpKNVbQPKw4LxTN7mZplfn2wOcO4nNouLuDLjV/oUS0DiKtHpYuHm04npt\r\n/tumX6jYJ0Coyo4Nz7OMdn1Gm5MarZ35ueTFJPSHoe+ZLUSG5fYJQ1PREqGM\r\nTQSLkne+1XxuzPS9EB5ouEkK5oXFVxpvkjw=\r\n=EVwq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"60a7c657cdf345f3123211f35dd1d3dad9863634","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.7_1669279088256_0.9476321897225801","host":"s3://npm-registry-packages"}},"3.2.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f33c062922ca70beb30fcb299ace1f11ab9a4620","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-beta.1.tgz","fileCount":1070,"integrity":"sha512-/TR2Opd4ir4BI22Cz57182yjL3lJmfdf9uh6ikEkQ/01H9QKgoDWhVfHBf3yC+YJQs0koS4nVT/sXvvT0JWa1Q==","signatures":[{"sig":"MEQCIFaXvUWrlemibqWs3Wwq1H6UIuVvmMSgtrqqnsM/WmOcAiA8CSacipFStKhp98sCwtEIJJt0NuqmEnLYwXqML2lEhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjf0wOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTVQ/9HGZtRjdTprKfdXx4SssHmpcFKREP2APBSSMtO6Zu/4QQWETx\r\nfVLENaLvEAk/kmFBRG9p8PlZhQ2WANuD/TW1lAGZgkYfL9bbwZSS1x/nxDg+\r\nT3ROZ5yGOD5cBPj0ed2vn2l8fOmDEPFIcduJZC9RsGf30Jj6A9O+39HBdbjU\r\n0yPajLCBPFOXBuK7ii63s5xYBVSvQ7LFoWje5K3n+7GY/oL4peGFPjznaoTn\r\nkHf8tmrT2QKHk777AaVEgLGWn+8B14BblAdfIEmON6LQEk9Y8GL1H4ANLkFB\r\niZkgFpqnDiuFUI18nU6Yl7SOPyp3WDjhitzaP/1AMJlGvjHJ6xVRBzi2XS8o\r\nPCWpMsN0TSj6ulOCBYYnqOOc3GJQMajJZDz6Xx0R0vWgFKDgv9F2Rcvq8XH9\r\no/0bTtJzsyn7T/cls+X4S0IHLPPJE00vwwbZ3HlddtaYi3Rk/SVH79D2vFwt\r\n0d6bH2HJgMWbgpECHcMv14FR//aZtybykjs1i7UVisozQPBGygM55M+yIWDX\r\nPFGLF8vG9cLK4z3K0IkT5E5Ga3Lj3RoNr2G6F4yq2KBZ6e+z9nU3jVibyFL/\r\nclnSTEDXOTdSarXtzy4GjN3ge9mKh00F0ZpvBhBEAHjOq9yqYsH7Z8s3m5cB\r\nrLF+KnMRtMNczfZsaDvQDB8M4xj3Q0m5gSM=\r\n=qeSL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"eaaefde8266e5df75bcf813dd3dec5e36cf08cd6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-beta.1_1669286926193_0.8108648419403977","host":"s3://npm-registry-packages"}},"3.2.0-feature-744e44-lb0l15un":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-744e44-lb0l15un","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-744e44-lb0l15un","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3378a1874e913677c03e270aa9fb44ccad1e728c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-744e44-lb0l15un.tgz","fileCount":1070,"integrity":"sha512-4UggIpnE61sENS9Yl/VDBhKXoUOXCydWudWfZiRy9zwuh0IRPakc7DcyKnbVXZPrOdwDgSU3ROvkeoYO+HoVMg==","signatures":[{"sig":"MEUCIQDKf6USv6Y6Pi6sH9r40z2EfefVsA+BQToKWFP1zoN5hAIgdTb5WFnZ0J4Fb8p9qzP0EhFC018AonarUCjshB/tTRM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhH5hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqosRAAhhIBY8e6n5jV9UIZBOk71bp9RBdLRfETtQPhPBUNBI22x7y7\r\nB4wX1gb520MVSy0YSvKHuw9FStCM/Hq4zJ5OUC0XIMAsRW145sLox8elAmGu\r\njxJSGB2QdL5DYYNOP7sSdezQoNvd7qgMFdOBFx6AL+39+MptZRwahH4+rsFr\r\n9xN4JE0BOR1+IHijzMeX/YrRXePjy2+H0y5b2o80SpwjMCvTs3EH/u8uxbbh\r\nEQHrGgiMz5bMxj/um/rqcLBDpUc3DD40RZrk8WnJFORkYUQTlWRku16MEh+o\r\n2GXH80SlSyugyxqSJkO/ShGWYnn1prfJTnzu9L3QNcHy0xJFqMdDJkxp1jwm\r\njIgZBj3QheGuElgIwLD2fr4PfrhOCd7rcIge9oUJ8vxq7Q8CnfD8N/kw1en3\r\nxgbwXfAU5vbmBMqpKsNOarw/uaX937Hmr8z3AGiihKQI7xxwL/hrhPtHMqUo\r\n8sUx58Uy3RLoEQ9Hy9AiRQAajafJBku9gdLZojPtVq7yHOwM2S1IpEWJYdRt\r\nvDgjsm5RsMY/NYwwI6vBJhSRIiHthbHmaYcUEOQSyETN/u37MBuf1LPrAx5H\r\n2P0JOl4li2ZW7F+7bqMJRMfjVzD7VtsQl2xK6ZAOeUGvkoN1I4WUxAoa5LNg\r\nR4wK/tlVm8ncfQUYQoaOLY4famHG3k/RdXI=\r\n=y12D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"744e44abc1a9f372dfeb4fc58c3e83124a100a01","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-744e44-lb0l15un_1669627488903_0.036801762629268486","host":"s3://npm-registry-packages"}},"3.2.0-feature-171704-lb0lamec":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-171704-lb0lamec","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-171704-lb0lamec","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a3d59c960b360608ca791696f36457911726424f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-171704-lb0lamec.tgz","fileCount":1070,"integrity":"sha512-s4yQ9rRtM+6SnL+kL1H2A6iu0HbbwrHFB0pRo8o8YbLxgwI9M9I8u06c1MX6mR028H6Tu6MuelFXjTD5VMUiCg==","signatures":[{"sig":"MEUCICLEXFueld499nSQSQu3KhRlrx0cxF3cZM0qZVrHBmeHAiEA/0ntDOcbBIsK7wAL8/VjNXT5w8Yzv7dL72SbB5BlsF4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhIAjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE6w//QZlaQ/LTske314QIWnqE4rCEhIKE9k/n/pYJPr4DqcJ97Cg0\r\nXRtiurWabh/4XUGQpaIODSm0lkHfyoOYyC2jxNOaQAp1Ag8gGRwYjRBPI+gn\r\nAcOx/Ik4WmveFw2rVJ58zvkFfGghcU1qqFpcSu/vLar9UVjtRdFAnOcRHxCt\r\nTY17V0naM+RC4V4xSjuPleH4Hl5f+hm6N+boOETM8Y7rq0BTe6MDkcwZsyFB\r\nLA6jJZIZJuEicMUnDrw2ZrRYSySlSRjE4tyyGUPMaqFB9sV6oydeHmPm/1df\r\nuto/dLl/VTqnmMaIJi08wExlLlwvkZTV2FpuSZ7y0gcAE2Z6YoEHeT5d1Jac\r\nN5w/s+lm1MOcZR1dOyw+qxA/BgBHvV0bmQCs3D4LxEGpDtOyFhpX8m1wf6kK\r\n5O+rA7ag/c9spygrQLuNIfHJcMaknhNsWI/PJ9DkquOjQZ1JMtU06YtXLcTs\r\nLpWT36jwA/WB8tfcH0kwiXhCB2TJk96gX2wji/oAK3mh3AmOM1a0/V48QJGr\r\njtWuRUBMFf1drZsT3QOwTN7E8pISSw6VecDZcEfeBqh61uUuq9nwdmNz7jOq\r\ncePDUUUQ06/nPtI1Yv79sALkc8wCFmc+wowgIG9LHVxSJxjfI9udVbmYNiSo\r\njvjOhyWGFHR3sOWnwgArcQ+pVyRD0QYnK1g=\r\n=8aUd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"17170477d8a08ccaa05ffc94f6d112ce4ec972f6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-171704-lb0lamec_1669627938707_0.037323687256187066","host":"s3://npm-registry-packages"}},"3.2.0-feature-a1c606-lb28lv1y":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-a1c606-lb28lv1y","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-a1c606-lb28lv1y","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ad1a282dc8f0e5b662abde25a79372a6a6bccb02","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-a1c606-lb28lv1y.tgz","fileCount":1070,"integrity":"sha512-yUjyLhlGFv3wkAAz0andYzaiIuHWNI1D16TF2tzX7bobEPlHrUF2Hqbc/L88JWhNbF5FrG0USchCApvb1+QfJg==","signatures":[{"sig":"MEUCIQCdassPLTWLRf+Bm6dvJV1JpwcxYpLDoGwqq1x/17nTKgIgHquLCeXjkiyQvbMOABmHkNu5PNR/JK1pc99LN0FdNz8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhgUqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNdw//aoMEbOI5yAYO4pybQNppV68AodacWcSoqlq+pDkOhflJ5Egs\r\nmks0EWXwppSRNM5PJxhjGcwhhe5xkZiIPx+9U6DBxXYkD16+vRT52oQY9DFt\r\nq+6BUHaxy590+cXi3tKMf112SQ6JyAa8Iig1llwsYUfQ+nR/ZwnJjIdKnL1J\r\nc7vkyUp4jJMVEeNLEuqasAsQuagU5DexDH9NMc8D+zyxzlf5I2C41sSRWwP5\r\nYv86fkmhECGw1VdRUX0CjnCHaJH7awFCH95TGnYe9fHxgVRxSNSVHlwnO6Cd\r\nK7F/PNUs4QMiR52ZIPytRKQBbShxHOha6wp69qBFtAV6P5dJJWp+14FbX5nb\r\ntcPby4qjYlALLVtf6K2IQZb5D22cH/pPfIqk+MSzud9qI3RiPPJrfnEMN734\r\nEPKc7SUxUJ1PonYs4EIbg6CMfu7lMrOhQxwXXVxGUKgfzoHgImS/Pcqs4uJo\r\nKGz4nLv4on2s5RKxAS8YO/t9GNuF68wFeQQmsYfCsOunynVSX+k/AsvBQ+4f\r\nhuTcG2oooiHdXfdQfYiz2V3Aqyrz4EucOTO1lbkPNPjKXopfygkxUDJ6OAnk\r\nk3ExvMl2ILbcHPOFCCQriaJJzQPOIf55IkIKjcKqMYV6JGVWoTJwvzkB9Oel\r\nFRGn8rhJ1A+It3dgO97YUp5qJ0qFuEUL9Vk=\r\n=m8BT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a1c60676768935a09263caa7edf00efba0b8a8a2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-a1c606-lb28lv1y_1669727530459_0.3554662376671638","host":"s3://npm-registry-packages"}},"3.2.0-feature-2cdb98-lb2conip":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-2cdb98-lb2conip","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-2cdb98-lb2conip","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fb2abc9641f52c29bd023a3e4751de2c2719c633","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-2cdb98-lb2conip.tgz","fileCount":1070,"integrity":"sha512-bo6WZoJabQAMvaa/EnpOMHsx7FpcGXp4u54fC9flSPhA4ADQw3RZu50y55ZThkJob6Vfk4BKLI0pmy+VWtpXqg==","signatures":[{"sig":"MEUCIQD1qc57lClRsJu2cst0P72uZMhjEFxyLjw4wpf56SepxwIgUsaJoJHmVf4KTjzfKj+2t5Ray3wVMoKJMw/leE0DsD8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhh/8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYOg//YR081UVEEF0wRO4C6LSrmp0gG8FGdiVmGE8CkTxNmO8oLU+H\r\nGb+QQrFi0MNTzAZFZ7eywpMj+5d0Zxu1a8MIVjkqhgC36ESC0Vnra0asXvMB\r\n5kFGo07dIeHK0GtA6HCRp+TIQrItc4b8PeeXZ/p8BwjxoGx1toVRBv2gFjpO\r\nJXoK+12YLlhrBPgVBZEDYNpkYJS3MFXY8rgo0ZCbYGIEIeHeAkcivYRwUFl4\r\nF9yi2sSO0jdft6XDSRIS7GNJ5KQ6YreFaA+XBfLsWgMXVQKK7R6yX006CJfH\r\n27dyqBU+fCQPSwSo/mzTZwST/1nBPWdygrGval0rN+I3DP24CilZNsXwLVuh\r\nsSFVOHvm6Ml0+ongK5RVd8cKVQ/uAXxy7xmEPL65aBR2SxjwgSEA/LPpnxQL\r\nnaDGW4TOrH/vEOHN/Sw9pYU25lvhevempfAyJpz579GnqvlQnXpiFQx+5x3e\r\nqJHAdmMY7Uvq3XcQsUdMWNJPIejbTb2Ii8iQcTlCL0UTV+tHzD5c8FyY1PHh\r\nA9eMCuM8E9DNCXejiOwIDkMn3Z89tP5B/BZoA5pooPWZu7tFLrGQTPrC3OpV\r\nu1jQIEmmicWs+vX/aSNWcQ4TQdPcYoMDoLZ/0iGQW1Rd7HFmwdtjAMyzatgf\r\nlVMQ0U/36Qc70A5ur1byrKVggKGqV+Vooss=\r\n=PKDU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"2cdb981161cdabd8bb2f6c22d6128b5dfcd7ede0","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-2cdb98-lb2conip_1669734396418_0.08744030512459688","host":"s3://npm-registry-packages"}},"3.2.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8a482b3f233fadaf0bd191c5777206cb80515ec5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.8.tgz","fileCount":1070,"integrity":"sha512-uBh217HLzMnQjre3CingxrU9qwWpJHCfNKyAdDDQvaSiEkRMHryzJj1ll+4tAxSlFAP28WW4gJt4Sie//nq36Q==","signatures":[{"sig":"MEUCIQCJLETjNRDH8oP8lVBcLYsioJBKNZRTUrdzq5l+IdOqqwIgAT+OmA/ULyp2/CeSpBUAvJESGWsfbRm8N5NU/2VTMhI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhziqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpphA/+KslEEe+DlgzrbAjau5bxALQJOSlIaxfAu/rq5QNOL++zA7N0\r\nm4loJ21An5BXmn1LM+rAgobxEhf/+tTzsog+B53+SdHOiu01RLpMu+BSZh+o\r\nKozd1aL+BHC78YZc1RJubHTbdcxXaGeF7W9DeNDZW9OikG2KSTV+QELjy00W\r\nnsN0Txi/NM+H6En3A3rm0U+jDWL+Eu5NLEz8xQOIfSV8LPu3hu3PkhDiRAom\r\nWLsGeE8jWeKkTByoWgDtPACMRYSzyX0XV6IQGfzCfuvAuxf4pB0Jpp7cF8ER\r\n4kASNvhzV8T9HsYLoNzOb2NzVdQWG6Tl/uA7cmNTbvIMm3DlYWq+WhnmSN3D\r\nxpiI2tA9LBbaqDWvcMzkDjo9INCFxZ8CoghazKR2sQWna1o45JHJV5Zk63oX\r\nmcJZCqb298YYK5BRtznMWSptewVRgCj9/YafYZ6nWQmqmcWeQJmrcodN8jfs\r\nGXTx7AMq/KbWRm4LzWYRdgfz/+JNJ1Etdj9/WjOebTKJKmGV6yLlZ14JO0Cy\r\nQt7J8+B93aByxlByVmWjeRbS96tyzeihSAjkvAtyJBHOj13L0+fcxTeVf6Bo\r\nAx19NaFmRSmQLePbeysEYjvAasTHWLNMTZt+Web6j754iSc4LUcZxD/nCsVy\r\nhiN92h/wOy4bh4D2ys2goMqjFgZV1fRDFuc=\r\n=ip1p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"dbbca92a4088627cb867f120d776d19bd036acdd","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.8_1669806249746_0.1263275658761447","host":"s3://npm-registry-packages"}},"3.2.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"52299f41e98270a0e0b1c7f86f8bb29312a6c1d5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-beta.2.tgz","fileCount":1070,"integrity":"sha512-SLY1IrzxWoIOzyshuRHalaEgOMr6v6lFGvphr8X/B/eg/5uO1vJstNx6IjEpedQPv3G/s449znnWHiRywljXNw==","signatures":[{"sig":"MEUCIQC4DhT/oAF0dgboQ1h1/QQoSKDsn1AdceR9lZFrvOr91QIgTse/lubrGK3s259Kq4svclUgbk+KGLNF07aAfjXbDlQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjh1SgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqECQ/+OMfEDR/+2ztHVrAnspwyLIyEbdehkbMvrjWYHJ36HGluJGIt\r\nzsUfuAtjqQPRPjNoJbGeejVKAV+HxLmy6UWd6J9sv1Yid63ESkOSyKDHIYzf\r\nlPxAEAishWEd6z4GwBTPq+Qd6m/9vFU58g5sAP6NFGQyVLyFSzK0wOhIs9cR\r\nfpTmZJhdLybYFnxyjpckJL57K975oJQa3OPHp2X64mSX8DGJULbAAljMBCyv\r\na2EyyTRM0r9TfmDK8mn1wrknB0w0bLN2/JVf18ae7/8B8uOyQJa1D+l3NaFd\r\nsxGmtNwnToj/Q2vCAeOdcUiA29HzHSRtCNgj7fQhYSZ78UWA/6rfQbP/8RDT\r\nAMFT/E57JZyR6b1LYyqttMdVBTC3YppprPqe61xAD7n+/r4ZQ6e1CksQsQ4B\r\nDIxj/ncT/GqEez1J1AJWN0ndpMtfJR/3Ft+r9duC6Uo72Okf78blpPUtg5Te\r\nDN+TzME5q7BTPmOc6upFRPrnc9k7miS9JRr7AyZ8a0gDXMfb3w3jqpjPQVMb\r\npZ/FvhMphbiCzN3WVb8szL4AgAQzYFTo4AJM8im+2qpN0reOIwBWEgonYRBN\r\nKQxy2/BJg3yriBeOcxmSgyplMAndOIdntkrhlyMj+Wi1HUNbS3lpL3HNvNjv\r\nR9MfNDVIKgFI6/LyXQo4XscVsuMUStmSxXo=\r\n=j60N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fb702e4dc2d73580bff94004296fb750c782e4e2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-beta.2_1669813407834_0.34021446725081295","host":"s3://npm-registry-packages"}},"3.2.0-feature-d71eb4-lb4tirxr":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-d71eb4-lb4tirxr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-d71eb4-lb4tirxr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bb9bc1d205a802cb8bd51f73f119c69008b0d58f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-d71eb4-lb4tirxr.tgz","fileCount":1070,"integrity":"sha512-+OM3JTznINmnqH5TYhOMy6X/PpN6FdhN454YlDlmCwOJuOxkctCMpTvAr+emeoz+7BfCMXVSVPiaNcIBxvp2UA==","signatures":[{"sig":"MEUCIDlOQtJ5VHidtdKSarXLkzj7wpQft7ileJ10J2OZ5905AiEA2/7Uxwq291FWy+p/RyJPi0/W+YCqdz4usK4GVhFGXV4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiGbvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroXhAAkEoKjRQieG2OQoEh70RqKdERZ2e6oV4VJdMcydtMGy/ps5Qu\r\n8uYjuSV8HBtd6Gs0FaY0IfU12rTvtkTadvi4gw00k+01U2kMTt46dJrOsx31\r\nJ96DKtgAPWdr0Mqufmxicickvr3WpNUdykpPqhfmHUf1r77jmuhuAIn20BFL\r\n0a4w0PWjveKZhKBOaPvG1fgjHk7fgBAFhqAT7XLAwCb+A+L5s4we55lie8zz\r\nIOYd7tCO+vNxmHvt9ux5DYDcNq/QbdTbwJsz2xSUG/eZDYr4eNDYGDrniSZg\r\ntBwBLmZyURm91k7GqoUCDEDpQHVFrtyXH42CI6FCUXSVEEDpAUkzXV07bODO\r\nr+X8iU+12auIQTmRRpK05kIM3XRMFTk/oPR9yEK7UFPPcG8G7eAeMaGWA1tO\r\nt7lhRhbvQ8vkZhuu1V3r5JGYTEfqaOcxzJhne0ZK1WGZlVHV+n74nwrw5fYh\r\nYxKvypzaEztwvtJEWEGhXguiAvO+n/7tJljoQTskxMc68vBIpd0Yo9ycLdwu\r\n6Z06kXNu7TfqWbLjXbBAbZzp/YQJx6h2bTS2JrXGTs9MhdGrM52p5bbMBL7/\r\nP7yueqEEROOt7JlJh0k/J1njqAsCojdKqyn0o137+jzWcAhR88Pi3FVQ7QUb\r\nGNyPCD1jyfJ0qaca4nKR44Uowx5+ghxSX+s=\r\n=YKq2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d71eb416a9ac3d2d13ebfecd79fae8f5181c3bdd","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-d71eb4-lb4tirxr_1669883631500_0.8957349250939408","host":"s3://npm-registry-packages"}},"3.2.0-feature-8304fa-lb4tnswg":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-8304fa-lb4tnswg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-8304fa-lb4tnswg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"82f48034cfe1efdc90de2e4b018b04e5ba74c97a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-8304fa-lb4tnswg.tgz","fileCount":1070,"integrity":"sha512-LjZ0BEJtFP4oWDH8kWwiazlTemLuC75U5tgAWwDP/1KP7qdIkWXgiTMESYRBeDBECy+aKxN8gpTQRI5pChkGyw==","signatures":[{"sig":"MEQCIBAOJe915SgBBNmoSIkrREsGXBoEHL92efKWz5z8cnEIAiAg4Tp18r6FpdjtIDoEFdabfZdS4v10u07mBn/VcDxzmA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1448635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiGewACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppqA/7B1YpkZYBZj9i6vScVYSK75f9KV7+k3uCci60XrWlIEDVO4DE\r\nCjxtjiqvFuNgtvTUkVCk91L9w2pftTCorpK3DGI4B5ip5ef2ArDQjsTc6D1g\r\ncPkz/zfSnH1O9E24uZ6qgiCB7yrsM9dwBvPAMWGDGrspqj3Oq1RGGwpcWKee\r\n2oVznEmcsGIFMHrxsvaFpDEhijVviYstq2CRrD+pCnW/qxznpsFt485HXKcl\r\n48rXf3KG9Tks9GwzcEfRXil7rMecPu5jz/JBkBETXbgJ2Jh1IHWVPl9kP5Im\r\naQ33vS1dJu47wsNhV6aQ87Pe3ofxMEgE7UlkBjE2S6a+SZSuyS1GcOejiEej\r\nym7eeu4DeiHxdxbA/0kKNAhH+8fzUKkNGQcqQnbzj0s8pZN4S3nRvavVndSZ\r\nbYLpJjtiLpYe/P6U44q/nmoCC5s7VVAkRXpZHoAQJpeUigsE0BBZz2yMhhnr\r\nXYyEP42gfj3daaP9na3uSq3NRugq0re5Tc2hVUp+kHbYXUGXUzlY7KXpiIZP\r\noknlk1Rm2xzd9KotZ3w87FfDfU5zNkBJ1LPvLOHZziq/aAbMW4klNyuQLjPq\r\nXYgTx/wb30ZNtE91xLW0VxqNxWAbr/3W9gyv+NY2tS8Eqe0U/W3yu/tjf+K3\r\n6S0EaMWU6aAteio2d4zoHDsQR0TmUlrzOeM=\r\n=x0gb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8304fa4ed7ac19738e6f81d5d70c991b8e752ffe","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-8304fa-lb4tnswg_1669883824651_0.5051492785300586","host":"s3://npm-registry-packages"}},"3.2.0-feature-e67144-lbb4glwy":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-e67144-lbb4glwy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-e67144-lbb4glwy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"069f4f4043887191f1d3a37a8695f70a687b0320","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-e67144-lbb4glwy.tgz","fileCount":1070,"integrity":"sha512-p4YS6c1jLUbbunBpjMZTSWAkHr1Oo7xz91nLFXlxx1UsqPFW9xPhEtTvliPyZKnOXPbrEa3digTypzGUsAt9hQ==","signatures":[{"sig":"MEUCIQDJIaN1W203br1r0ykhH2TdsfnbpES2wVlxivwbq3i8egIgP/6VSG8B1NGR9M6a7M7krtzzsfKmshp+Fc2oFFlDTEA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjje/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsYw//blI1K8ajTV2PEwh39xYEEXxzxhkozSeY3PuuF/pkyA3V6AAr\r\no3eoQ+E0XC0+X7Wou16S+p9xQcJz1beVDnOcoJYcecLfZHYEDpHfAGX6gVHH\r\nuUzcf5aTCdyrPGVN8XYjuR7DHFcvgtS2O2jNB4qNQerba9OyxvsZs7lqYvoK\r\nSgzPdK1ct2xRonJF24R2wp2FfUDkZtioyS3T6dvPbdVR1wPjzVvzzpUmrLc8\r\nCHhFcLYnfkY7fZNYU4QPHTg7B/UEsr/FJ7CUKXyV3PGQ9iGTjpHq5XO5itUf\r\nRs1uoG4MfGlegMJhjQoY60rSd0+/THiFito+OWNY7rd4miVRX3UFe4aESiT3\r\nWSl45HIOtwrQZdZzZKI3Y0Ji/ptIJCvqTwhVPwB67suwAV+P4+jbhqMfnwqE\r\npWKFOEPnWrMIYG5nULfcXAbrJvxTgu9C1YhkZKPV6IxX/xGWYk6NsEHYQ6Xp\r\nwYYRn4dOK9oFElpMITKzWC9b75+YVsoa7j8bJx2ej9JEdEqZIjkOIEs3A9bz\r\nru9EhGk0eUnbhXrS/gs849HxE/h8R9XAnyHLNoNREiC4Lua6ymdpDV8i5r66\r\nscmRr48dDa8atD6KaFhZYoFtPsb3PwXZkiHmgYFy+IpSJKGK/H7iURVOsy2D\r\n9++ggO/j8DE/OthKDa/DjDzzvIq/+uEex2s=\r\n=ttcS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"e671447e3522d763d5ac7c743481a4ac7bd96ee1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-e67144-lbb4glwy_1670264767663_0.9106567056369756","host":"s3://npm-registry-packages"}},"3.2.0-feature-583ce8-lbb5eb73":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-583ce8-lbb5eb73","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-583ce8-lbb5eb73","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e718901e030c054367487a65655ce27cc7d3096b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-583ce8-lbb5eb73.tgz","fileCount":1070,"integrity":"sha512-/1mIxDgZhzPidXpAscLU/W6ZhUHENBbRMQMpafGf5UkmYm1bw6cRCwUUecgZbFAOHhldOPjm+B7uivoNGhn46w==","signatures":[{"sig":"MEUCIBK5MOWbJsIrt/0fuD8J10bt1fm9nJUjW1EAvlJpWe7MAiEA6iowUtQ3mi1fgCyQagOngWAU2ppLfkOA3njEmZMbwhw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjj3jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq87w/+MjtFY3oU0H9efq+ZvcQAfwGPtzsW6rz1TKxDPq4EPKNPGr3u\r\njqBOwjQM5a/xoqwVA1louRyILD0AUDOdNK8ssKWV/dZARW9n6lhiz/oqpW+e\r\n9GFP/wt50j2eLoCjZ2insLFUx2ULaH5lnSISYGTA5OE0u5UeSELs+jyh6fVQ\r\nFIjwAsRUZbQqTOpVSN2MtsvXknYnRmtFrfHnzDlxWQyKiwZdCA0ojO1ZEEy1\r\nlDPOWMJwJwyRprS9vm0oVSzMPoNLUrmnkRKmYQT1hs9Yri9t5X/TzHf/eKnw\r\nzZ9N9EZvw+vwuJBX7fvy/yUsHb9DtpGDGuzcDCH0SBPPtq6Mnj1dOEJxO3VW\r\nBLObsZFfgnHHsYBn/zzMdH1+GX874Q8QtC9nw4+0ZAdm8XLoUgHuwB/cir9P\r\nJvHIUwah8Z0GAwqf9XG33TWMs9AOr1PgHMrekC1u3YVJywMy83NXUeJWyrt1\r\nJxiM9uuSN4qYsJTRz8b+6SAJri1e8DpXUD+1NuDBOgReo0PR4GDkPXRrkQj5\r\nitmBwACHkzegQPGH/wV3WixwkhY+PNaXHrNQnByR4SXCVZ3RV5HXFJ+OIFGT\r\n307SBYuKIj3TWd64Rp5rViND9rDYCWR4ernFg1QThSfbhctMsk2ZVuVPt6nA\r\n6GYT/zhh3tjeTpq9bF10hCDB3lj39VC8a3w=\r\n=pVVL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"583ce85a249894544ec597722fe4609c76c1e4ad","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-583ce8-lbb5eb73_1670266339160_0.9605669077696735","host":"s3://npm-registry-packages"}},"3.2.0-feature-c38c81-lbb70oad":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-c38c81-lbb70oad","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-c38c81-lbb70oad","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1d846f3498e15724dc422c11adb81811d1b8f19a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-c38c81-lbb70oad.tgz","fileCount":1070,"integrity":"sha512-JKbVtS4em03Evluc9NYNrkKf4Uy5qC+n8JuDVysPEq3XpmGdT/tCbESvQiZcHi1NxFgoKjOjBzwCSbnWIaaMcw==","signatures":[{"sig":"MEUCIQCe8lTykZVG/OH1+r7N1n8vKYsebsTgQxXS8mQoHjqD+wIgOgu2Vg7uOOdMuJNe8Nz5D8HYugzJVDtQMJYuXw7ri44=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjkibACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoioxAAoFGRTPTFUCp06j+poEuDQTdjzJZCTNsdUuS3QtjnE1DDYj7p\r\nilZdnyDml82TIvGd1SY7U0vrkv3J8anQshCmfMuGr8eRSzJoVoUbHx97qUgG\r\nJgFXf/LnjzApX5QmDcbFZOrm0GCm58UeNHeaYVdSehnHZnZ/dh1IJdrptNXA\r\nhunwwbDhcNKd7oIw1a3pxXn+1VnxZe9fPf2PNr/Go0o7QHFRbZNsCha1V9Xq\r\nRlj4yiM1GknQTLmHcQR050k5cw+jjNCKzKlrYSon1bZDLm3WfOO9Thj/rgv3\r\neF+1xUDbfXr0Flh4yOx6ue0rGHyGUbGXOR9zwGrZgCvjGbJHeuLN57W6cFAd\r\n+4Wb+TeFCEV70Nbc1kJix1WeykCj3TYmMaiFEWRqh28qSM85YzRxsNRl3A9V\r\ngX0eJfORDh2PnUxYZ8MfqCLNTUvxUcBKUG7KzlyPxhIVqCmWaNxY+HbFwlIM\r\nl2fFzYqsAxs076TkwLgjoLLT4cnFDytWwH3ulS+fYeHMzNcj9h0cGrlsZg/p\r\nmrRuDezXEfrLcknanaT4aG9ixX5ohwSuNv0s1hF9FdWzxzm20rSZaRcsVfJx\r\n6dwv3iZExbBm/zO/g+2IKYsauno7hl3+DQs7Hf69pTtapdgW2kii7tn9jV6D\r\n9zEVGoOWkj3EEXaCbEd8ablcUVL+lGUMe4w=\r\n=eqlK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c38c8197bc0fc8bbffca59397ece0bd4697421a2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-c38c81-lbb70oad_1670269083286_0.7654086615437379","host":"s3://npm-registry-packages"}},"3.2.0-feature-84ce8c-lbbvpiwh":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-84ce8c-lbbvpiwh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-84ce8c-lbbvpiwh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f56e30d53b02c7a80308047e5b326ba4aa839d32","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-84ce8c-lbbvpiwh.tgz","fileCount":1070,"integrity":"sha512-WRXN7+m2DRdToTPyDJlcdZESdjhnyG7vNuKvqH3UM5XWdbn0ljophT6WAYWX4eWtxJ1GXD1+WTGO5fJfVVqiBw==","signatures":[{"sig":"MEUCIG/zmPMuvl8aIgOx9/aygfGMbVdNQ8ICZPZ/YOkt8Qt4AiEAk6MpERQoPNPmTAsJ2ftM9F9Ek41fMGswTL3QD6rQlqw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjuqBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3Ng//Zq3eZLH/mM/Mz3X7BL2kloBOfZktU3bnk5UGBXGeHrthvhx4\r\n3FAenPgiZ2L4OFOI5awCfVrO1uuixVBTHw8wbwNvb0RamFflpWSyoLrYDZLt\r\n8PlA9jvvNndzRNzyaRj8wPbTdqBqD6u60XubHEIQ9gr4LfU01HmZY/9+7EUF\r\nl8isqPoSXITr3k9+0RHithpW2hZQHBhsVoNFqVhx6qqOKPhs5Sfx94MkrElv\r\n0KBNpxuKnEPFDYr6F3TdOlPyAplbNkQCVPw3G10/Lf6dTcr67hQFfIAfiF40\r\nckoycoqJh1/W0tnBWAeOXYy7EANPI8SsiTRr4hk0Ma3ALMWAvLnaMGL8tLkC\r\n54vQnjfxYVb0t1QzANYGywRAV88sYu6Ugia9PmkVcfLAxVIwldb5D3N/iV+i\r\nLs1MhhGBcfZr1lpxjNjPBdcTmm9NhAM7ssiELQmfNBGCddQrnc5P7BgDs/xL\r\nWsNrELM/iqeqGUDIQhBl3DHk7S+Frjs4Denif+Q+wm/BKBZVZomzAWfQnz/+\r\n4CcAmy02T8q7M6qCAxKfU8vHbgcO6YXoX1y7cvl57H55bw5ilFjGFHxw7AJo\r\ni8Fz3dtui7kAUJbm/mVyrDTTDZ+S4SLPE7EzCcATyia/+dGBbnc6uIMfnreK\r\nLCuqY2VFJJ6ImAjynq+I72HgfahoV+RmGa8=\r\n=xRbA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"84ce8ca72599be60c78676ff295b5d48757a18c9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-84ce8c-lbbvpiwh_1670310529155_0.49059749137085884","host":"s3://npm-registry-packages"}},"3.2.0-feature-84ce8c-lbbz0lmt":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-84ce8c-lbbz0lmt","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-84ce8c-lbbz0lmt","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4f705d7728443df03820501f80a5084747e46af7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-84ce8c-lbbz0lmt.tgz","fileCount":1070,"integrity":"sha512-EIPdPFF4EgNv1ZRToZGa0KCvmnLNQWgUsWAa/uYG+lcKSDho2DQkdsCXHmuDm2hMj5htRQy3pw9H2yUwWW4f6Q==","signatures":[{"sig":"MEUCIQCxuw10ytJsV4y3guQ8WCYEm8L+sNQ2PIVrHavkIQGhFwIgERWuFT2n+nb/SFe3X5RdqlcQXenjDBoEssDIL1z46p4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjwBMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmogrw//YQsQ9I32qzPamN7NdpRgq3J1jZI0gL5NnMNVoq4t6y4GJs49\r\nTGUY1KaVTP9twaT7/dsdItS/hcjBqXn0V9itrJvYv2aC1H6gxBtL/ugyb5rX\r\nRQ5c062ngwExJ0W8giNdkdogfqyMTm60YpRDctqujCyzXIcAWLEVHeBi+oRv\r\nM/+w0l9Q7MIA+M+Zwt85UjClJcdQ3D32TsyPgdCNch+y7CAnrDVicPE+16dA\r\nA8J1FOG+29E2BqBUPm78G62y8+ctdqB9G6iyiGmI5jOUnjrWtGQnccTydt1Z\r\nwcqe6tDqrHITqsntYnDgqtZHEKkKfqJ5BRqDsHdbUn4maRqoETc3jrdYnjHY\r\nvLQxQltiGxOEj8o8989y6Khvn0QjUXeUv+4fEn9PcAHvemNfc8fBFuWPmD4l\r\nwnJU7t68/sr0UGAA3fza90NfNtQhXbo7ZYYeVnT0ctvPYWWYuAkjD1hdXG+f\r\nNqlrIwMRo2Uumd1pywYuEshsI/kVUGG80SrQhfn78l9tWMGrOKmaVul0ZC94\r\nl48A0rO6e4VdmSKd0E5SwEy9iNJBhnRTzw0aMVw7kSMoHCcbKveT7q+YaY2X\r\n5LNr2DBdeysEg1dKPFz7oN1eh+/D0KpXPMq6KSQCbQS+8zfyXl1bnFo2+2oE\r\ncL/D/U/fbWJoihhLZWf33T6dwRJsGdQCtV0=\r\n=OvYU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"84ce8ca72599be60c78676ff295b5d48757a18c9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-84ce8c-lbbz0lmt_1670316108443_0.39063993038923894","host":"s3://npm-registry-packages"}},"3.2.0-feature-03b5a1-lbbz2dzs":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-03b5a1-lbbz2dzs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-03b5a1-lbbz2dzs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e9ab2cbea4a7c422d9a6b4bbfcf06dbb7d6424ed","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-03b5a1-lbbz2dzs.tgz","fileCount":1070,"integrity":"sha512-2BRKVSSIiXoHARYrPLOJkDW7X5SbByhrEGfOAK1mwokAFPRu78GLZBR+X4OR7pFnsABj5+5R41NNzkIZsxLKkA==","signatures":[{"sig":"MEQCIER711O1t1eFxQWjiff6XCZq6xtauHrhC8v1ZZEddaTtAiB7aRJIN9avoz7+l9ktxTMybqfRUTSmARSFBMiWHpxECA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjwCmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmruug//a1vXtT55XTgaiiwT5K2LHC7uWK67BYbvBZIIhLFU0YGvvw/w\r\nByPk/aVufFqSMKG/D6hlnbpD1pqnYy7vowniAwT+00y7tv/sjEIK3NaGd/WM\r\ndJg47gCYA/rnChjSGLxLvZpcyg3ixQHaTdl9xS+25CzBk28DmQW8WPqgEV2r\r\nIzaHKBqIgxrXdnnBwOoX560xuFBF3oLdhlSS0AUpC2t0SVZLPvDZ0IHTfpxL\r\nuyKV0LrK4cc2Dq4iwJ6SW1hs6Qbwxkj7zz3QY5si5wc1bphpbiYyjAuPoipP\r\n4VUwMbdgAY+ciIqVLUB38s99K0dXkJMTVtdAYDhcYxJUa3i1aq6SHNoW039m\r\n41OxNtDrZb/aHvtcAF2+i3cuo7pnWa6VWIQkqEagnIgrFvsA35H5cFEo0N7b\r\nDW5FgRhGO1P2np8zChGm6tsXMKxgQrqTqdutPwlEsL7bMHJ3arrdcJRFaAjh\r\nDHHP3hLNqclEEt4Kbp+Mjct+knEFiRRL5F2gPufGiHiV+jepGWRebbAB4EhR\r\ntSsnkwtCZGfo6KaiTT09DHdK5Ez17LL+bsyfZr0xKqEDoQ5I5fpwy3pxKf3k\r\nU79FBNWVCNKlaE0E5Yv8mgdytSGX3MHEyLJ2uXwAjIYtDhkBgtkIaUqPYbyP\r\nuEDf3iI1ZMcfYKeq0k4Lm7xuMYh5NwX1nNQ=\r\n=Z9CU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"03b5a17e2bc06121311fcc210712875d6b34f31c","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-03b5a1-lbbz2dzs_1670316198216_0.1827590469628626","host":"s3://npm-registry-packages"}},"3.2.0-feature-8db062-lbgmx09n":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-8db062-lbgmx09n","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-8db062-lbgmx09n","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fd2694fbde1ebf440866189f3f49140dc275a6a8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-8db062-lbgmx09n.tgz","fileCount":1070,"integrity":"sha512-cS3M8rjEeAgGYP4k0q6HYz4WrdTemLV+aNp88ggaijFL/YnNFBVGu2sIPxv+jvXOaNwBuadeuSP+fRtkfLDDhg==","signatures":[{"sig":"MEUCIQCBjE2hQ35xhfrurHNgIPCN1KjEH/ymkhaigf2YocxBzgIgRiMlUVKjR5n8hkjYDD0LTxCaUwQ/5VqGG4bH1f7nOxY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjk03qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoi2w/9FPDlmz7jCcHeifVy4ORtlddJ6asn0o5JSX6GpbJhFw6++BcV\r\nMH5AYckV6Oc3G5J4umQc1BfqucpZCGze23eY9JCbKAuwQKQXCaM5J4eqhqLQ\r\nr8VQwJKKLCvAvAb4Lc5rLEtNyQ0m8Z+WkPKH6BDRKZxG69vFC7N+Wd+50gO6\r\nmGssvE50HXzJ5JwQQ6aEhjycdcgeNg1Iu4HYqUy/dAvt8q0+PL7eXoDJUhGJ\r\n/jBxblDxI2NjOsUBPyE6x3fPQ9c2fy74CXDp9YkLj3IBUqeTPkdPDg2FkitI\r\nTeCL3mS/gzf506w5YNR4aTdteL5oxh6qgWy5lSrDMiL/V7/ZrK9/OmQMH+/u\r\n+tlEjYQpLcBnN0q+7c/3f1CCCWheuSrOU2sdON+VF1MWqH0x3McfEO4YKkgV\r\ndpVpEsfH6y1O50TNykw1ZRAtJoQFyL7vgi+wVi7I6mV5ANTF9PulB0ziGF5V\r\nahn8HmVL6U6QTv6rWV9EwGO92I/ef9mBvyxnpOJ6rddu4wEhQ4wWvVpb4Fvr\r\ntBeewcZ19trh3o3r4oxecm6yaRsk9hU5kBrOAr5clApv1bU7YMUFjpNZyY4e\r\nS3zlMnY8HmB2kGu4g18/FCNUmx1DlRWMRjgargo7qOwaErGp2pBVpz3duKuH\r\nW3/unvb9bukjIt+UMw3OXLG5CkbxZYM1rMs=\r\n=6OrQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"8db0622565ed3995f1c62f4094591f90c9b61252","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-8db062-lbgmx09n_1670598122107_0.17647597373335078","host":"s3://npm-registry-packages"}},"3.2.0-feature-9696f3-lbgnhmv1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-9696f3-lbgnhmv1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-9696f3-lbgnhmv1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1abbcb7c27b26a3d858469d7f7e97075d1936ff1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-9696f3-lbgnhmv1.tgz","fileCount":1070,"integrity":"sha512-lQyjOzfXrXYTb0r/N3sUev3NQt2+LaSOLoLCr2Ouyo2/DdLzKq4gE/ZHeGdfFyoPx5nPyfE8obF/yu62kK8ZcQ==","signatures":[{"sig":"MEYCIQC0rZV+qnKOQJQIlp2E2ERVjiG3AQYpV7b6uZYO/N/ykgIhAOPTpUJGQCWH8ZCCeTkPT1NHt811jc8/vb9McAgdKK+F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjk1GQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmqA/+OcINEu6Zowms0oSc6mgCd7UIBkxvnK4b8c26CI+chuAKClmm\r\nAa2F7LcZRPNdkRzA0O/NZBz7MP7elZz8RGGAHq9kJjPk3dXOyoAtgxydjNVr\r\n/XFxQ7DYOyRoj6m6xID260MZkaULRLqHcUESBjmfhEQVG/vM771C1ObHhWQf\r\ni9OxyIzEL/o27ybaHO5+JVkmtE1b98bQ0X1mX0LctWZ53YhjC+N0sp+0j6U3\r\ndDD67y9sLEe54eAZEizsiGPac/xhLNqFELAjdUcTqZbtZg1fWCi6zRj3cX7D\r\ndha8xaU4zYTufzTIAkWWOSoKhqxEDkKMu26Y8bh/E6z9JN/xtI2WfHFdEUDm\r\n2WZS4g08D91IAnv9A9mDLGXjgrv7GLqUsO8szcaVUsVSAVS+5CuIzSLj2wbD\r\nqgVUhlhCaynM8dUZz8ZXqjKWYPAWxSdAiyKz65w1OLmZ4W8rmjqk9ietxGZ4\r\ngv94dS8XatotmH9vhcKyVKcNq0Z4kyw9vmFPBKHrDyYkQUqoRfvkJzMar+2I\r\nWixUwvu4bLZcpjIWVTkBtfIGm5dvrgp2Xy7hU8oyMmRXRQTULTZ7XBiYE0WT\r\n+mfkjxD9ttav9jNKWHxJt03zXCjeMfqf/Gdw3LWOphRsNVKQRBeGbjYQoZ70\r\nACyDY+YNhzUxBf3LWBBzL2tUHanlEP2D7p8=\r\n=M2qo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9696f34d24287d5ed3a15db746e3cc384c70e38e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-9696f3-lbgnhmv1_1670599056446_0.3984041120514301","host":"s3://npm-registry-packages"}},"3.2.0-feature-f70cd9-lbknl4d8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-f70cd9-lbknl4d8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-f70cd9-lbknl4d8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b0e4e840b5835db74dc7f685d6d01c41d85530f9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-f70cd9-lbknl4d8.tgz","fileCount":1070,"integrity":"sha512-RFA40BY4/0OMhgQRLsRz2t7J8eH0fhdkcA9XtfVZGDHjOMG8cGiKdAoK3JhVhL2RtDnfcPbiCbtX6t5aXyHxgA==","signatures":[{"sig":"MEUCIBNKHFzYAopYogeTA4XX6EDDwDs5z3V6BtLirgqD9QJpAiEAq5gfZ8qIEbcFvHhYu1pC2aH4qDgeG/v+NdHpNR0zLP4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjlwL6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMOBAAmSWRoczG8C5F6O57R+BO1jm7czOt+l70ZpbQYO0Id4Pg5hjB\r\nJoaupS5CStbGaor1vDaeiCglLhchBukwwRIlvPL1niDe73PCVQobyvuIgmKk\r\n+dISHw9eiYtwYRz9Hw4LET7Oi2ZzWpAPbaJ887yUFamPk9zRmyAXdrJfQJTu\r\n6/tFB97QR7KljIUhoT2TPMfwIBSrxrZQkjfYCQBR6lilBoPC6ohn2jS1NCkf\r\nr8qoaaXcZ8GycHoWvQGG6wrW2PfYug8NQlKVyN0LwTStA3wC7g/IM7xfE8us\r\n1ortEqqRWoMiof11rZN4RhptOEeRG5j4rXn9Z5YPeISAhdWTmkcBaXgDJw4q\r\n2YJ5jj6GAA1opMdErKk+FFkna2QDUDnS11gYH09WrPfkefH19GMszpo1397c\r\nkaOU5KbuIljC6CtG/sPWTkeG9uHa2SLPf9wLf6G25drvnXLk7N9yQVJqOBEl\r\nHT610fex+1hWBibk0yDt17g57+hS7sU34CNL1ARuQxz3lDl6Z42UIpfD6um+\r\nq9WfYVm84USuSHqPmSL9QgJ581SZrzK4yfAyhOwklAGcn5UE/LNVwUKDzyw8\r\n+TXWajEpyTZiLB1viUoV/Cxrmlv8VsVQnnrXk4dk+8z0FlFubTWjjLrtcR9T\r\n+NPj+EjhNBIxFy4DEbKXmjKncA4A2Pm4oIU=\r\n=mXJQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f70cd9bfe61e762a7721e6ef6e39a3bab6d309d6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-f70cd9-lbknl4d8_1670841081790_0.25553505010767474","host":"s3://npm-registry-packages"}},"3.2.0-feature-baced0-lbnfqmh2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-baced0-lbnfqmh2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-baced0-lbnfqmh2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"467c88a10f86dad696d2ac78171bfbb596679d05","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-baced0-lbnfqmh2.tgz","fileCount":1065,"integrity":"sha512-za3fpaqQKiD1IoiiSNDDXPBbSzxedQdqGwHmdczd47RRcNcCoFjswEz0QODzmPeRFjXsbRTm8NL1C8w3zItPrA==","signatures":[{"sig":"MEYCIQDWnf2JpVIIo9HOMMbaDaXKH8B8zJjS2BRDzO2+FQN6VAIhAPmruaXBBzsCgfPL2nbG+mAIUTj/U4TkvK+IAPKZgTR7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmZQWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoaEw/8CK6feSJxfuQVYrBLGWi/Fs5DCEEIPHtZlzPHpQRW1mxQM/W+\r\nkrIZflAZOvinyWJetQK/f61z/vNVTb61dyxSkijXwzhQzH/USJu4JQq8g14S\r\noQ6rs4k0g8eq8zJjLzQAm/Hy4/AVtezPYaCfGFl+bGYwNQ7OCs+vMmRlXMeg\r\nAdkbTvWXF78pz6XF1KzL+b9MvTq2M+Nzm4KQeJPV8pk3BfvYKauq9e2/iGtl\r\nYCVorT82+kWTs28d3ISkA03QvhvDO3WowYmUDBgdqQcN3yGAahvZ+v1dJlBP\r\nH6NXoet7y89hYVVhz5k4ZXSn9CZCqUz85aIcwDG1Qt8buk2sib8VMj2qcsm+\r\nn7g+Pr5hVRIIh5k9wvdSswAxdWSgeNJmapXuC1+KyYHRNJibiczNY+7icqb1\r\noomskMw1Lbh6NAIn9cbfJhocr0DzFDecGvrmvHN2Y1109GTOvVpI3A7RON5C\r\nyUgfD3Iy/dPYLmnPE4DfZkVvsNi8F0G5w7TGa7CtmlohmCrXZmYdryJpXnZP\r\nHuiUZviN6ZvkT9+2e6kxlqSTPj3Y2PtzFQi8tSuQpD4GwEpZYSRCXUJlpWSI\r\n/1hm/TI3A/yyODKLt9LGUuErve3G+gepDqhFSNLqVtt1A8wEaSTf0UBsTS5z\r\n9C371+nBcLa6oIvOawKfyHeh8p8NhvFou/c=\r\n=8ofV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"baced08559d72356e889eb3a2856381c409d4a8f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-baced0-lbnfqmh2_1671009302393_0.9552252301921966","host":"s3://npm-registry-packages"}},"3.2.0-feature-5e2041-lbnguhce":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-5e2041-lbnguhce","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-5e2041-lbnguhce","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2bbd561cfc4264fe9e64027f8091624e2b48f48e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-5e2041-lbnguhce.tgz","fileCount":1065,"integrity":"sha512-CvV5RweusxZN8YZ2xj8QIjmUX2KEyGi/hDt3bPFEkjVVOjwXUaOmvcMoqvDrq9iHpaNo7/r5dBTQaLKBSP5V2A==","signatures":[{"sig":"MEUCIBp/3jV406L+j1Js0k4s0ZL+JMP28nbrm1BVo/mnKhvPAiEA7uSH5TEAL4+7q904pxWdwZwZ08CjP5QQfGdo4PkvSQs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmZtsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqF2g/+JkKty9FgvY95vviTY8UDL/QTz4R+LNge/QHXW9wage1A2kKi\r\nGpk9TSv0IfoAH2cMvQmmz4zCtXnxm5fVKM3QDIW/MEuQXb/3yE8uOt7fro69\r\nBYj1TAiUuI4suxmn3i+fgV1jJ1B8OD5ImTpKZaW7PzJhz5JaX+5vKimhexnB\r\nEWWax/jzjfzQeiAMyRztOjJwZ+g3RJsgZQlJqCd8HmD0QV1xJodGQQGck99A\r\nzyPaGvd5jN5hFlTeqoFaSaYbWmbgxFWhIkY4RtAIVZ/79DA5JPFEifJMvD75\r\nsusOPBdU3xxoCuTOPAzXObcgTuLEJz3kuIbPyjjPNKtKkUk3j9xJ2TJW2eCx\r\nSOPUXM1fkAkAjRIwQZdd77cGviLxy5ZinRcixC0BOlvg02JHfYtZV87pOuZT\r\nX4Sc0dPSXTm3z7Yn12im9VRmx9ywiGm7dafRBz14mfO3YTmfWQkRfMzHNraZ\r\nIxpPRx13X48ymf+rMJFFqQSKAezbeLcvq7g5ZpYaP/WeFEoarwE+7KsLDetv\r\n6nCMEy15DjR1MD4vgfyt4bsWX3ElP/iz+InU0sziQBlS4RBIXec/uY9gFduo\r\nXMF0D2nzTbMq+BZHogetP0sbm+xNP8uC02KAsvvLK7geifewT4YE0xBTUte8\r\nXAqGopIKNgTtKaPo+OHNYtIzVc2/Vho7W8A=\r\n=9FNN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"5e2041b752cb2d4f3eb18907d028baf28ab617ee","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-5e2041-lbnguhce_1671011179720_0.20122868149976236","host":"s3://npm-registry-packages"}},"3.2.0-feature-a02170-lbnkmpbz":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-a02170-lbnkmpbz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-a02170-lbnkmpbz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"991a078470758ae81cadfab03b2755e46c8f9584","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-a02170-lbnkmpbz.tgz","fileCount":1065,"integrity":"sha512-HKCELvDcny5v1O3tEUWutFLsjwFn1YVt1pQB6/tGDI1/KelIZU8nhWijqm72G8RiDc6c7epzQ8sAvNSfcc2giA==","signatures":[{"sig":"MEQCIHA9809aWfaUEccF5Y4nQ6z5aEosLVvdWKlTgQgJwnyFAiAn7Cy45y/VK17CASY8qGwSHOJtvfQmeblIbsEs+A1MdQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmbQsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrt/g//ReBvWddpptj+C/TojcxuTjc+RKHPxudHYpO4rDTtK8I8UlMB\r\n+mfapUjEQKAwP1NSLu3XbO4NI+Sd8yize9n2Ak4bP5xzLfYDHvCEZdi3JXAD\r\nOyHKZQu6O8JI6tnUyOE4ablitJk+q+YEbG3QfnnqSbZo5gjSaxM3/KDV4rLn\r\nBKXGeQZtlL6W4C2S/nFcUssW6CKeH88ZJfejLbUNLC9TdQWwOztLLjKl1iov\r\nKt8kiysTDauSLgyzJLYpCxmGaYASRrNIj3PQBYNeQpGRG7b/YjALM10dZRvz\r\nB74IwxoeIou6p/hSM27u9L/Bn6KLnIbi7vvUQz4bMv2EN9JS7/VKI7Rsi9+b\r\n8Zp3WDU/tnpevnTAxL6NwsMKdvtyy5zUEbwrS3T9Ea2esTa3iiscy/zvMASj\r\nkm4G5Z9I4Vew0z5+zjhDWsgIqAO0NvgALDNXc7Xy2yQFmp0fYXgewM0D0A2K\r\nDmKgGT15xW4IPRVReXLIXZIlvVHUQjbgA0hLvA9CkVPUYV6Rs4Lo19qwP48A\r\nQyLzjQysOxfoKjAEgJM53xS3iRmIXbNAwumCymqEBKS9Aq2ckoAPQ6sw2UTx\r\nfcxfDaUsaohgPa4wi4y3m9afzVvgTLvxAFN7i4gvqwfjEBkY0C3WXgO15Lgw\r\nA5jq+LYJJOTcnHeJ14tAtZxR+GJisHImUKc=\r\n=Ijj3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"a02170fa83f69f5d30db0fd1d758f91198d3e609","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-a02170-lbnkmpbz_1671017516330_0.8179550648116352","host":"s3://npm-registry-packages"}},"3.2.0-feature-4ffb00-lbnn87wm":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-4ffb00-lbnn87wm","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-4ffb00-lbnn87wm","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f2a866ff7701ae27a69b8611e17488680dc3d42e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-4ffb00-lbnn87wm.tgz","fileCount":1065,"integrity":"sha512-AhU1bzNKLtLCGpP/eOylg0N+LtLKiysKl9J95fCskj97NNn6ZWDe47NcmyOZ6gHgHHZkjemg/g9Qobn/d/k94Q==","signatures":[{"sig":"MEUCICMa//KN0tQaQv38o106B9t88iFH4A95Ea0MxtoI0oSCAiEAzgDhTJfSXL5gY6WRZWeGyR02EZ4UkI3QEYIdzQJmId4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmcVcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTWA/8DzouVe4hVg0jFbeRGX07adRhHW5cGvMCG0YS8XGHDhYMkiYG\r\nm4DrdqVS1oT8p6NuJncjjNIhf5vMhHQ+6bud2sjRdbtQRfeLXN61jFdr60mk\r\nHqRATy2/ZENfOhxBAwNcR4w6EOjI2PcXpgt7Y3b5BTl01hzjmMZ6hiBYLWGv\r\nn4q5v3x9GfGs8WUZvTa3CfdIAjxFSCXtqcdIiNYWWPDiCR4WGPYWkUL7WiXY\r\n9EWCm4dp4DzF5lEa/hQHLSgKvqIUwpyej66ebvibFfzJxLlH+b6+r4Z3g/U4\r\nl3FSSGv+sqiNj9PtTVZaK0DdxOvsbLTc71+FW50F40KNOK/XIUwcoTu77oZp\r\nlhIPjjJCq6K5O+PuuJ2zXaGVVuYjKzk0ZPX4zYk45DZ+GNSFnmzQQBF7Rv7G\r\nfIdXnlRpkxg0cDLQjKof3ZQzfQE4YZsPfaiNE45IFiPTo+HZXskLQWWBp3Xc\r\nDmFW7W0tlv+onQ05RqhoNi4UIRt0+XLEykQHE9W1CpUbhbQ4srBN0+NPp3gM\r\nx4wf/gVLjtiL5/r7/gDgromEWb+B25Hi5VZVfoSMnHmBQYSMGUVLc39XPU8O\r\nYZRx3cznKqpVJWdTxVCbYFIyZ7yjD+2FQp0hsUbWDcV5lCkxMs3sMNTX2hvM\r\nOnY2kdX8yn85jNpcFzGTA38ndobS8RhW3rM=\r\n=ogqe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"4ffb00a347f552085f763bd2c79af3c0037e90b6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-4ffb00-lbnn87wm_1671021915968_0.13189531439667257","host":"s3://npm-registry-packages"}},"3.2.0-feature-f44adc-lbnoflzf":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-f44adc-lbnoflzf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-f44adc-lbnoflzf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"362059bb3e609bd9b05538b9c65b4c6818f70b54","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-f44adc-lbnoflzf.tgz","fileCount":1065,"integrity":"sha512-DpvtWxJk7jy1j7M0cVM45tf6AVJUq3Q9GVefRBKLZ9Y8wFUhCvgdEAxyyx81g6Zr3z+E+FS1+qza7wxRH/gazA==","signatures":[{"sig":"MEQCIBrK333KWpYJoCguuofWrsN096V1AKyG7lkpZzX8a/D1AiBAPuSojQokKMMWDy+OHW8S1qvazj5Z17XsFYh1yzOFfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmc0fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqa5Q/7Bsy55L8XTCAOzkUCgdAL9/Np2UDb76gp819/FKkCCSziP05R\r\na/nfHhMQQg78xE4WDJkGDesqBLdmH5vVW5ym9iQ3/sQq1rFAobG4aneXmvT9\r\nc4DpLW94v2LJQ0ZZWLMKZs/JKaTkXtYJukJ2bqcjH7Jz9VwimIg0ee3Uwlhh\r\nQXBe8NC+gA3HY0tiT4iS9WPcuHQU49GNMrzg2ANpE+Pp8hcGx5scxbu/pxo2\r\nfWVZwV/zOCU5rHT2m6LMa2VOBJd05ZOjURC3aimiB/As76iW6PFXs5fL+kIV\r\nyoXDl4Zz4z6mxIPgDUWf69ebmhrPtrk4xZXDzBO9i3MZaZw2YyAb/VG7aeDh\r\nIYIwXfn777raWOjv3xSY9BYNYkI6+9ePhBh9alH9VMXoBaVHq8bHMpUJfmpQ\r\nbFyG83e85YP+0fju0wXGNDvZNod+/ClwTA3ObJIDPw6VJCT2uafLOK6HLfOx\r\nEF6CXIt4DYoJfBJjUmh83erTklW3UEflTUfJOCNztogtQt7Gsujn0ToEnvlR\r\nHj84KpNxQ1VHo22DADVXLcsyuNDV+WSsxzmuzBN9L9omkzF0rzvnc/W1s/3E\r\nFx7lXRybztfMrlNFpZgB87SnzkwTGRYLsYUbqHCE78zO7YswsVVWJeh2ldsg\r\niIoQvnD5kJQ32gnR6wNKj1QCz1HL3JmmgQU=\r\n=VP4e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f44adc90198d745030bf515246b21406c9b0bb7e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-f44adc-lbnoflzf_1671023903489_0.027565067258704445","host":"s3://npm-registry-packages"}},"3.2.0-feature-df07fa-lbnof1jh":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-df07fa-lbnof1jh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-df07fa-lbnof1jh","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"14d6b2915e816821a69ece295b4a503582980c33","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-df07fa-lbnof1jh.tgz","fileCount":1065,"integrity":"sha512-tGXhvWVRbJSE3FiMUPC1VTTnuebr2ManAUaZPGLe/yELPiggyg8EwmiyiRh3z3WSRdVtx92fvQUpS6VUoUPbTA==","signatures":[{"sig":"MEUCIQDQ0NkyhZ9QL2pFZXQ/B3Jn1fNodyPYuWLVZhhhSkBGkAIgDnQR6FYNSoghMyQDhgIuXv1Kk1RRVj3IZMpKwhAtlmg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmc0qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBAg//QgKE8OfwsEz9N4C8Ye5iUb/PzQPi/HP7LSsAJYcRi8rwz3zH\r\npt9s9KdIJMkExWA/wLQpG+qOspCOwuhProMApgEvm5Kk3i/TQY7WzYE6Rv9m\r\nlU8waK20UBds0wciC02oRucXqA7Q46QtZNEaZxZ3i1/GHlm9Rb4E/PNHpAUM\r\nwcUC7dXpWAwUG5YBJ9GO1PlbuLiHH7KTvPxotBPjplEf6X7DHonJxJp69wfG\r\nKkSCY6pRsM6gNEQME1fMhWyXCdIKoCp4BtRymA9T9cvn0c4mAudgMbSL7y/P\r\nTQi00dH4m+w9hOTzF/fIyCsqSPbiukgQkZ2Z6ewZijE/wLDoSZ8dqLXcx6ha\r\nb1QO1YC0BJSuot7FnumF2ihKnDLqk4QKMVxzFN78oQ4rti0LQoUv7XXVIDTX\r\nYpnP3d2J8sz4uUd74DTEagSFmP6IJhUs4z+Q+tUXrIQyBCzdZ8zJOs6tAVxA\r\nXHkcevZzS6rmMgwGKIB7xiYHqhb9a6SZoKcc5ycY4ZxivQWWh7GLEiH/Ne+Q\r\nFZzMM9jOOKF5qsUeG/8LoVKVIrt6UDfmrvlHj6ACHK2JCH+zUUcHZ6SLflxh\r\nXzuJhzhC5rrqgeQQioygWhFskBecZr/JtneuuAXqqD41e41T7+cKE+1Nu33p\r\n1pywEsga8cXFCp1aLPa3fNj5qzkRE0IIADY=\r\n=QEVC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"df07facc8ef281f42645a20ece81341bddeef957","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-df07fa-lbnof1jh_1671023914589_0.7238766033347648","host":"s3://npm-registry-packages"}},"3.2.0-feature-36317d-lbnpk2sw":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-feature-36317d-lbnpk2sw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-feature-36317d-lbnpk2sw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"87194cc402e2f340122bc5b07e9e5d521c9eb4db","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-feature-36317d-lbnpk2sw.tgz","fileCount":1065,"integrity":"sha512-eK0zBMPpLHNopFEvcnYB9lr0epKitaLatim6aFM+RG3jy1ddOhPcgkRtEsKC5OkypwOOuaim7O2mGaYynyNUBg==","signatures":[{"sig":"MEUCIDdbqPxiommtBHZYkBJ3uIR7N3YLUgc23cjrVyOZX33nAiEA4eGXHsuzrWExOYsDeE7Ls1m5PxIBrHlze69t4TmnaY4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmdSFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1hw//RxS4weJf2OKvJQF6xOe5zSCpHNj1pbQ/GX6CIbUBLmvVXBHb\r\nlhQ+//Xuw3++esteSI4qeB82flcFgnDajHWENvCh1fltRFAVf8e8Ov+lNWJM\r\nBFP4fVu7hciy7DfZmaYpoQ8HL76UxyDLdVXxm5deGfgyxNT2nEBUbi92c9D1\r\nSTLLyUYFu4J5NgmT2qhF0VCLP9lk+HvD4rc7Op+PN0D9wPxoLf9wDFGe58iz\r\n65Nv0SOYNiNKfwXo7pZ15W1RnJ2IgtNJeyhd6JZYNxNscUIkdtMRNcXf1h9L\r\n83B9D7ID85Rnp3FdNFfEIl/fRDjK+gm+WiSKuvRrZWY2Jqu88tHlSEh5IbwM\r\nDRoZ+/ftxmzMhhRaV6Xv0vKU7BUcquqVyJDGlbo3iWb5xGZMsUchf9ltyrPS\r\nyBqWBsfX7ynYzjvgnH0V2JwQG9WY9i9kW0jiZ0yFw107HVb2E8K88Hg1wIO2\r\nnccpWqfsbpCIXCGVIP4Vs6A1kZM3ALukEs+zOIrzSrawCuiN2Cp1+EKrI08t\r\nAK8ehyi1Y5P2ZnPcxkX6FxYvmdSSxhmCI5aZfM+y90/Qn25A+kpbwyxqHTjp\r\ncrqiLYjqqKVPtCgVjJZqQsAPYxmsnVMpoUUE9zSfUTiJneQAjRsCHGaPSrLB\r\nN4e11ZeiR8E6mnSjGLWmrdVOuBBXQsomY0g=\r\n=MSOB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"36317dc44aad0b3bf39ca2ed2a5c243d91e24892","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-feature-36317d-lbnpk2sw_1671025797161_0.13995322052275094","host":"s3://npm-registry-packages"}},"3.2.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0287774c1592b3a1a262e723e2c6a3efe48b0642","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-beta.3.tgz","fileCount":1062,"integrity":"sha512-J/x/mhPCifa00NzOyYeEBskWVXdk5atDMkvKc5pY/sh7PGfB8UA3zglBXvpZHmanAJfxXlD9XUysReBw82GXuQ==","signatures":[{"sig":"MEUCIQDqKREOFy3mPpuz104/zUm6R082gb9/l6QkVLjYl65dlgIgSjuxBeAhQiHkhYQEx2wL9AleFuEEDX97fRiUP1GA5zQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450038,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmfTFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAKg//QrkD/24IK9LPCKE5gO6yZRWwQLaBF4o5nKcSGe3540vf1DUz\r\n790mG2V3okUFJdlBwOV7usFqmZ42Sv9jPOnMyGfQxL41LeNP/QMTGYY5Y3PA\r\n6QeZCmyN/Lzry64fseiUXn4KscM//1ii4CjlozKp3NyTY7MU6/nJ/zZ6kxy8\r\ncybfr+wZBy/M7gpCCM62hE7H33ofZOI/CGkjnpjtu6SRmtHDMmT5m+lJvheH\r\nKA/TLo1W2WU85TsUGz1Cw/z3e37NNw43ulDOdX1xEYOI3xrAkWgyeU/7kQC9\r\nc4rUJi9mdKgHSkDwqPZZFnt39WzZr15v3NxQAz8TXyiKzPxQlTLtJCIAWsjI\r\nT4qQVXUL28q1zrdHQJcbE/VRO8q5iTGqBNqtTshswOJymPxzJK8+U1l6GuHl\r\nxjCzXhenraMeJxR7tTXr1X6GP0TpbpBGlWcRJ45b3dLuRsYA0G+hme6eeEOC\r\nHaiegum0sv5iqFqHQST5YkGn90FoVNPWfFQKj/7iVBbaNkDpHHxcvKs3ZF0U\r\neF5Adf16MAAElCI2trPM8V06hz0e4Qh65an/cbF2s6olfjOYsWIQr1HCLc90\r\nzpIxp16NhdBLlUQHym2BJMRh+ABf1TluMdOR2JktSTZjmk0UHw0epjQeo5Nd\r\nWaqOK4O8YD7lJ9a/tQnEfeuswOVhU7QQ9C4=\r\n=EcKu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b9fe3c5287dba85eeef0d90fbab59395b68680db","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"obivarg","email":"christian.werner@5minds.de"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-beta.3_1671034052751_0.2113460007117134","host":"s3://npm-registry-packages"}},"3.2.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"df6b0c72fbe87547377a8875d689d27ad3eba1ec","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.9.tgz","fileCount":1065,"integrity":"sha512-a60wnJIMDvczZbWObE+jilY9D1JvceEY8hbqRTAF9KSRvePRi7ACKeMUU1l0lnZImg4cGOIWRoh/XJczrBORpA==","signatures":[{"sig":"MEUCIHqbzMSQXP0+odjfUav87TtzN7PyfFsB78F+GE6lab1BAiEA9nsy82KK1SK+wF2MfqUvsGOqVzB7pIDVF91l913z7rw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmfkgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPOg/+OySrIp43pFNn7MsDBKLdky7ThlnkV9sgcbr1lOuKvdrYipVO\r\nHaTH66MZi3Q1Wt+1wg2TXoI4NFqy/RAcnNKk6aCpM0X5GxwDp5ZmPUhTpjYg\r\nCm7NMQUCPFcb8eSImdmPEFYztWpn00L4zsF9I3yoHvnA7mmVtgHvsVpQ3ZpN\r\nwMXpDuggtVygjj9w9tEeXfP1ghe9HxmfhNDvkHasfd3R0YCeir4j3MmRr1qq\r\nTJsx3nhQ2rwZ+iREdPZOdRi38sSKkai8zzfhE7xkNKfySp0HbhZj2+dscO5Q\r\nzrdBwUB+kbZG7/3sJRTOTdlWhVMveVoT2Lcb7DLxhv0URZfaq2Shm4JhT4H8\r\n116WmCdZFK7gm29kFZuUXVBiQvQX/Royr6vmCH8g9H062nxtJaeYb4a7ne0Y\r\nVVNT6UkeQhHt14FevLyUC5oI955l2SOC5FPVuYOxHgl35g1tf13BjjJ5NJEj\r\nr8C8jdNOVzKWI/9rpAaSv05bjxqGGuRro8zldCFFK6J6bStW9fFEOsuW03i8\r\nl4oN8XMco/1t/xZ2FymW3Ns4VcxbpuhqXRFjMhAonDyGj2+4HoUKW7KZ2LHv\r\nx7t30YF4EKc2bZAah0401QrXBDI0TLulahbHXbVZHt84Ce53A9Meq3YQ7IaO\r\nDZi7QO+vCpoCwTEj6vEK2Sv9u/IsDHNz4og=\r\n=Ju0Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"aaabd0b52cba40430ce87688fd767d2cc4b2e741","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.9_1671035168327_0.2677551464936532","host":"s3://npm-registry-packages"}},"3.2.0-alpha.10":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.10","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.10","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b1a4ce10d24dd2bbdf6c0efaed0e4cd7d9bd29f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.10.tgz","fileCount":1065,"integrity":"sha512-vmEFBcy1TwRoVC1mquvXYTPylHigfOyzXWkJAqX3/ZJsN76+lFcQjs/Sr17BT1anNPO6GZCZZUSv32NMlijZzg==","signatures":[{"sig":"MEUCIHLlzFKQfyAzy3nfzGNIwjuRsHAIcbplwS+QaqmhPB4AAiEAqq4OzW6qoS9xBrCVTuKIm8VuJ/kFcKfU5QjE7mISHNA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmfn4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRoA//RhCf99UUpL4mxAQRMbKxte7+9PbAyo5dPMVmmZF1VILcioof\r\nbswZnc3ZCa5/bHsKuv4BhzzN09SnRgej78gnuqfuObbu7NRTq4XnpppO06NN\r\nIPIFqICKoB5gQHrTUj7/67kr3XqV4dqQ+saxn3CM4epv0Ig/N5QkoqWkeCgj\r\nOotYWtN2JTHmwY5fSv+hN8L7cOX8fyRROyLcGIdbU4LSzTIqpIyRA3j0KrFh\r\nshSrLnHYXzjOwI3mtLl3T079Q9vy13DXbqpup3SZ1p0ulvm5oW20XVtPSVKE\r\n8OFLWktHLl3fY6/KPSJ7PDMnPxSyinjZDMw8yVbc4V37TKn5jeV83tKP4qtV\r\nnAroOQRg9b2ezAfvtJRtzmpsi8scQL4uj/X+svn5lkGH1wMHMwm6zV7TCTuH\r\nSVoLVOh5Pg6T2jtutx2LNCjzePrEuBRcasx7Rw/NjnaZWXNRa16VWP7Ox0J0\r\nJ2ItpR3FBubv3A3zFtyvBOl5KF2WAnEBX92Vx8ONYGaSJFJyPyTnMZL+hoGE\r\nGFOPTf/9hAxaayO/d/OfKexiA8IeAD7f5+j7fAlIdRe1ZfWLIEMmEATdY/4M\r\ncZmrYhIuzj2ozA2NTeXu2pUnaHBp7kJUUfBwj9BSN1PwcsBuBzNtLtYZqaAK\r\nGrgcgMpfVX0/qCXnwetAv1/ILWgtiXZwLkw=\r\n=ZslR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"017fcaaca1e7e8dfc07459209e2a9d89d16af3a1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.10_1671035384667_0.7394450234491257","host":"s3://npm-registry-packages"}},"3.2.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"849835d8f58e8b38b1970babc2f71d7021b674ea","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-beta.4.tgz","fileCount":1065,"integrity":"sha512-HtO+N5AzPjhyDA90Qh5S5GhiWU/xrRO4X4TmHX3OIqxzSNtAhzql57G7x5LY64vUK1Vg3VcZ4UqYD42b6QmTIw==","signatures":[{"sig":"MEUCIQCio0HBNYdgKO+GdfaJf7L9ikEMij2wFvpxvKLrDsSl+gIgKYOfMQDHvW5N9b/wEk33a7hjJGn3fxvRUrTD5PfFS1g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmx1fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5sg//dp7NgEcwQRJGBzFdOjzeqC19xKPbgeOudzyCM+HhiKhtEzIQ\r\nmCvzdcoxvdnu+CR1oa7O4078C7DwkMK4LXuLtjql62xlMHIYpA08iYp6T2UI\r\nefFT9HQ6qJE1/nS8tfkOZTNrEtmywL0EBXCeWrAI4XOUMCL/uSYuA2POlcFl\r\nlHMikjJ6fgWvwzCo7Szdvp73/gat0ZKEVXHBJvy4qS0cXbpL3kKIhDPlTzln\r\nlONOzrUHNenkpcVf3vRlFBkUZz4L6uMuocijw3uShWDIbYkkYrWjU3kLaZol\r\ndbiZDSpftVcv4RA5Bm7IUk16eYkuIpwgnXIX7xmU1bhEmAhDxTbtXA8Aj04m\r\nKDaOXtIeIlxbON0/goJrtWuO8M2Z7HHTwwM2b3WBqhWpTiY132V6n0lEcv5S\r\neIbu9oQumQfFJSkJgHP3/xHBHCsT1wvr7cme9vp7bnXcxHQG3WuSbwmXwuRK\r\nqWkghP9DDA28bzYfMElRo9t0axugzuSYSVY5CLLlOM8/iB2lnCjbRUMXdjTC\r\nJH8F7+i+nSZvGESmZsKphFVatkxEPlT+KRnNmGxQlUEfgXvacGZMAyot5YNK\r\nH7qj2OQdo1vWTS7f0CHFd7z7PepmlE3LFP6oW3WGdvgjfpAkleU9G8KvMTwS\r\nuM9x6iEWGCrH6sID989rWDhqlS+7j8ESU14=\r\n=zNFQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"c581b52bb7f83b7d6709f27b1b7ac876c8455a53","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-beta.4_1671109983413_0.375201193772426","host":"s3://npm-registry-packages"}},"3.2.0-alpha.11":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.11","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.11","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"739c3e60863131aefc6d428ed38e5819840c0509","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.11.tgz","fileCount":1065,"integrity":"sha512-h56oy4neRSweDkxycRN1zUIqro5NbgrKnLtUV8LWs2qwkrFHYsrIznmVZejoJL2pmOAWzCDZ93qdYhbgKGsPUA==","signatures":[{"sig":"MEQCIQCmji4Q4IcTAUnJlhLY6FSCR+jK4F4sYPwYRW329UjifAIfeqxY+sWn7ZamkzSZbwq3MZZrX/RRTm7rZsCoXl91Jg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvRoNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpV5w//SKqGECR9YjgiaR+C4eXspmo1p4UORGW/t4NDFS127khmQK6e\r\nzz7MjQpVPqmQYRZgvdqSnCC1uOd5xLw47BVgRWH1TIE8Sv69e4BQrE40cQQX\r\nNihDrZR0Tg46fzRkE32rvHKkPUWOHWVfPw7gz/yJcij2RT93BIadTjAfWxzw\r\ncq5hmhxyBgD70RL+Ln57ysvSBevo9wpBjx92EnXKZA23dr56RjpFGB+YsYsX\r\nZtkmktuas3N/Y/iCxfSEC7yZ0i8+lmUjgZvJm/bcmjeC5Hnu3HVEOlfLJmbv\r\nr+bPmhGAnFR+JttcB8jxqE376sMgcVnQze21w+H1ShURSA3zvO2kiU5h1Yf3\r\njvcjgm+3/enljdQrY++V7RXCUPGDYcnvyyVdeV5zxCTom0dJpHOPlaAXmm+C\r\naF2Qo3CzKkTifp7vU5DbMr4wUnVGVOsLrReA/fAUbHDGxR2Kt0+qtH0YHvn7\r\nxBmi243OrvyLQ+bPC+uLECpoGNxq4NPSXXblWdZubRbpjWxDP4iSERfzco7U\r\nkk3Qc0DGMmsBrKx6ILRGk4eR//te7oevrdMA9BhrxoQ5k9U+c19kw2levK3Z\r\nm8P6qEPSAtrpakOaNf5yaLWRrKf5Uebgtx5CR/nZsfD+O0a28PJJFCyEu3ua\r\nSeSdCGqc8KI1t3p0IThahEvUHN7wvHAzz+I=\r\n=DcyB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d80cd2df6cfce9056d79c0e150a465c5bcac1d66","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.11_1673337357239_0.0633393335241168","host":"s3://npm-registry-packages"}},"3.2.0-alpha.12":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.12","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.12","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c3501345295d2245449bf74ea863584c57953eca","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.12.tgz","fileCount":1065,"integrity":"sha512-IotUVR9gixdR2XALKfPdgnqLbKpaThDaePB8QVDjezP1SgchnSFx+Jc3UMrNYcPV8QxpNrETnxJe+p7PU6Ja4A==","signatures":[{"sig":"MEQCIBAqxYgL7geR4ASTQzeF0u6VwKRexH5GWYbj5RgIaO8TAiB77vIoaFUbpX2xJCuaSKzf8wsZlc10MAnh3i21+eX65Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvRtcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrj5Q//TvfHafNWXa9w519/tebjYpB5oixnmuHqiFA+cKA80G0D82BU\r\nhthO2XKnEuh+UNMV3T+CtFjeCN5mNikFJEg+dqaFcoMfQgglgIp8zG4qGTmb\r\n3eVvGXTu9vULTIGyqnb582TzXkJlsvuwU7OHTsuTEHZM/OQ8CiEekk/69IM1\r\ncjCXdJ97FxG7mHV7rhU7THhae0d8ll1+DzJCCwDvyJF15Zoc8XRvpAVjZD4/\r\nsc5I4EpAPwQHCaChPkMJNFw/mP0n6IP8PPD8nr6AsCrUSE/JOA2MEVe7o4b1\r\nUqphtqakxNqzCz/Pzii0Ack8B3DgtM5B8ZkC0UDfDgUz3JkgvDYhWub3QXF4\r\nEPYVp9RhlfwHrZnPsu8/ZL23Fx7uAMa656YwGmcCEO9ojkVjPG4Ah6FR69j2\r\nBVGNZllw/gxNSbHQVHmTlUQQqTdQtZEYLagW5MgT+vJRk+hhSJ01PLGvjHr1\r\nSXZlCukOB0kmqVj8CqCxkyyDP+onwIwlJtvehUv5mtCLlJS2RzfWhHiSt+As\r\n2ww/GviPVJ6eoPPy7asSh4CbVx0z3JeeUsQ17wgTtz+e6717phdn2RPEFWmk\r\naozjlyr3F8XhgR6QJPOZPr4VTYtvo6cLFQFokHCzLHbMPEdurWZ5wY43yXN2\r\n2q6sbiHhprClT1dAiTOdnDWIC/GvP7HWfIg=\r\n=CnsG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3772b9865ff51826e11738a3a227c73093ac0ee9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.12_1673337691702_0.08296723934498074","host":"s3://npm-registry-packages"}},"3.2.0-alpha.13":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.13","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.13","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fe136829e73598a8dde25d8ff1de348cb39193ce","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.13.tgz","fileCount":1065,"integrity":"sha512-IVKFbaBu12F9sal0tom+FzBzwz9uq+O7xC/P8XsZNA1nw3X1fzBx8Lbi2AWMIuOYtvfT7dc3zOWRyq46C2mzOA==","signatures":[{"sig":"MEYCIQDVEMAHHC0cs7knlqPyfSSII3YYOt61MISgm7CPEgodqgIhAIA8ElGlop9XQAAk7qhMAzQKzdvkcwYXnFC495+xXpj6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvUZGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrzxg//YAtzI4JRngp7+22wTTTGAoznZMoxD088W5+oT2iwMcx+Xt4Y\r\ntMw2Sd/iuMnTJbAYDDrzkIheL7f/0Cl/FJsk43ERBRQ35K//LSWMzn25fnp7\r\nfKTneu9pXuG8AUUk3t+Hp/4Iq7z7kO2w8cI/52Aee92KKB1mxvJJuu9skPNU\r\n1uH4kmjsX67GIcSj7LbWuoxKxqkfQxFSU2WFQMNUkp1HITg2cwQILSuE+K0S\r\nb79L2AtdY+CfEmKZ/m65K4JPkWLMDEt00YFYkolBc3kFqVkRKR8Tj8sKxjRa\r\ne3BXcrnO3YDUhMF+ui8ZSm/X7LnPDwONdZgH1n/mnKR/jnLClpvjrAnEBIQ/\r\nqsKYIgFpJAXHRHP7RMlUSoFZHLkIl9wSs1lI8JTMB5NiSV8I00Q8S2oAabPL\r\nMbCznuJ8EiV6xG0leH88o4yf6A3DOtV5TL+2Yo6nzS5Vxu1px8qIm4A19Au3\r\njoshdpYQECk0QYZzquGwTIEEB3SeaiGeKh4NSSLo74kuj3qeYtsPlspj9Y6Z\r\naHy93WZxUZItUelYceEq0sdMCos3aWVyE3cklGCKqyqIuDcGAFhrZejPN/B+\r\nI/IlggC1Tn8b53brjoymJz2djiuFrRdf5bJWcN0rDw6hT0lL28mIFSUZiOmc\r\nmbyFAc3hg0HLbkUoYn9Yz0l86X4xRdS5rGQ=\r\n=9pDg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"83d8d1cfa072af01e8dc66b370dbe8079aa9f13f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.13_1673348678151_0.14535724433579156","host":"s3://npm-registry-packages"}},"3.2.0-alpha.14":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-alpha.14","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-alpha.14","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2c7be338cf8b73196b92f209dd265a40787a0efd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-alpha.14.tgz","fileCount":1065,"integrity":"sha512-skgWfsQt2caNZTM0VVNv+YD+c12T6nZbK6pDo+FAzZ42ZHqTKLMjgshDbB6WXC5z4XMhq5ruVc5EiyoJ4CbX/Q==","signatures":[{"sig":"MEYCIQD52LDHz9aozzqowYsnLWsFdBBV6G/gMrDH804TV8BFjwIhALsVljylD5y9x1IaCqlEGsB41mI1rRY/mGCsCkDz9Zzl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1430833,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvUuHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrvSA//boAnWB5UQu2HZjcesJFiaaEsNp/ZJ+YXDrU/2Iz+CAC7xSmS\r\npVoqWMTib82dXGYE2uKPiDyGvUcCv0rxx3s2QVy5D0Pj8QW7WQNYd4ZN8aky\r\nnpXxbPqusQ6c29/vlU23fc9ZjSSPa6OrzGgpgEGtzQO7KaJG21Dj/FAvCo8A\r\nMSWTEKVwIveRE0V0ySZ18dcBc1toCnbIiKjohiyKuLtVlEBTay1dPC5///vo\r\nmhXYMqIWgXf69fKaolPehIodJacexzXCHq1bCAWQ31HI63BMLkghWT9SoC2+\r\n4a3i5zjW5//f6qZm2t/iYPNbH3rFy1GPsPOY010fydnrDz0Dqfz0vuqFuAnr\r\ndq/vqcT07iO/UfaP+T6lTjpe0Uw1jNQf1462y8P2BFEgapGXT0wc7qHHRZrb\r\nnru8+dA/h7/xwbaLcHLior9dfFOU5Jpqt8hnEdKpkQBIClmQUR2nSwXoZDPF\r\nL7Y+9KsVkPFAFf8ZO+6OEF1hbEqGRglwgDSVaC+dEzNwdlYnibZxKWlAi/EP\r\n88zl+K5eQTeCYw1e86m4gVBydz8DGzKhaQ38W0WOF1HPE6bAaQSE4jx52MZ3\r\nkggdK9qgnn04OuSb3MMcYLH2xckIGfn8WsZAtgW9TYreD/IUbax91lBsn4S0\r\n5E8fApC8ft9gFuYDDFKsOsM6i27sSZqOKZw=\r\n=yt/n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"43ad491f7e1e19da6ac9f264db34e054bc09420d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-alpha.14_1673350023550_0.436215459776927","host":"s3://npm-registry-packages"}},"3.2.0-beta.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0-beta.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0-beta.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cb5fe3588cba75b2d3f015e17fe4d6fbe662951c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0-beta.5.tgz","fileCount":1065,"integrity":"sha512-/ALeSOsFHtnVLHlEoeutQKUdeEA9Jl0KSObFDn7KcP/ZbB1tqbS7WmDTZ/5rdzSWYMdH0Sh5A37Ag87TdlGZyg==","signatures":[{"sig":"MEUCIQC3W+Imh4ls5VqIp8Z4es0dAgLFv31qu4lYst1NhWTzAQIgDZX77tns76u3KmRU04/RPhChT8cEBK0P4Wi7vDnxNGc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1430831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvWjtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqj9Q//bG4z7F2ZnETp6bXAatsNp7709YaK2afQpfGyy1t73WPOU70S\r\nfj2PaZNdXkUf+zZ67KloKGL1VVuNGhjsABiPfjZZ36gVVUiJ5JVV0OVeF6S8\r\neQ3E5BRnWm+T5P8Hs9BKNYHNRRzCxprV8QPkHnU5gjnZRYwTtHUAHYZUWFI5\r\nncY/3aTiK9mYv8wZbKz1lJIexnFNYytnkeXiueOxjXnB4s1a6N5WxGtl+AYT\r\nlkjY1eRPQ2RU5/A9EA9SBY1yanAZ+/fq/ZLs4V86JQLb6Mh6KK3lQBYDoGeS\r\nY9Ij/xi3g3wsX/ObaE3jNDXgzEjeoYASCfYo/d5WZmL5qLj0JhX14vW0D2j9\r\n3jboFEhPOSLJdW6X5uEKEL2d5k2cPkEc0p9yFZKFGGpBxASdEaLvbZkLCW97\r\nnq3R48IfemvpiPl5QBGAVfHFEjZY5uN2IL6HD8jUawTav6SN4GLC7boA3jFY\r\nhdb3Lwxp9wvfVhMEIv0ZgUV72mEDbIPiBpoIHJxN98ioC7MNnR/9moyRcrOk\r\nDutk1pOGXvsrroV7L7z1//Tpuetui/PVeJICjCJEWpXWBo3ndNveuEnmgbzE\r\nC3/GSqKQOZmGCkMMp0gg2wx8A7yXYYsDiKAgO1NIYBcG4KvJoi/I6d//juR/\r\n8b1MbraFDLcflFzUn4rRboABvvxrt0C40PA=\r\n=fClY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"04e2c2e18b6573973d2fd0e9236dbf9fa2419850","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0-beta.5_1673357549415_0.7144285211740564","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"79efe22804677bac148ddc0fec81be8fabcbb0e2","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.0.tgz","fileCount":1065,"integrity":"sha512-n8fZjN9crOghSSHKWAzJr52XLe28oOZT0QxgMhynPdI81A4uNnVkI2COo16DYITkhkGOWJ7xISqOgPLNpqwUXQ==","signatures":[{"sig":"MEUCIE29SGDaudSSjCXRmpeeTL9RB1LQMPGLY6lEHnReYX8iAiEA6bBFh0cGbFzTJRoHTPqNpSgq2gOQGOH+EwUBLhvtS/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1430824,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvWnSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHVQ//dF6D6o4ze3/7i6r8OojfeUwsvW6naTtTP7uJq8URzYoYdD4X\r\nRK4YmeoSSuewe5AUeujRT1tWFKuLhutKeOqMPt7ipBZtcfx9iZTRzguO8FAZ\r\nJIb5HaJPcicJYZZIB3TXQCLwt5FI+hOmLtwcwLblI2NpF0qhB0p97nDp8ice\r\nB24Vm38rv/poqvsGQ/rhooRQIHpN3dGGNFG5NORK1/aLb/QAgjAl8laes5g6\r\np/AXO5EcrQsYtVew2+NDHcBS87EcRfWuLYYOcwjbJk4CE8YVM9MhdiaF4Lbl\r\njPiSgNj6CiUQTqOVK8e0towLO0gW7mDkCMVCfRl9NqCebSthZa2troO/mC8e\r\nx6gS8OTeFYvyRrgblWHzlIopPJRSuKsD5ljIVCXQ3wIb61nmg6YTdYg8Oe7u\r\n/otwlxrL4Ov58dTiVw3w4OkSBPsPyOFsR4hbYooUlyJ6PFTiexTq0Co+Kjnc\r\neMkEjOZzKJu1hSSpfqTVrh7Mi/2x0MKf/JjE4bjTB8ISZTPzoNQKoli7r7OA\r\ntEO8yEmtRvdzYJt7dRSeP/p6JxNPz0T/3gi9tLpsHnPez1WNEC9J56JHwO89\r\n7jeb194c6TZzLvhBv4ZlM3YfFAk9Er8g2mOzOgkIugq01ufg1UDNkKyPNHbJ\r\nc5P1K8y/gQ9aotzPrFCUeaJ64KTCqgVAK2E=\r\n=FTaw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"d70c241dac88f645e3f2c4991370af4c4c472cc1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.0_1673357778170_0.47454947831904604","host":"s3://npm-registry-packages"}},"3.3.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f474defb0ccf17c3470c7577c696bbb3ca4b9fd9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.1.tgz","fileCount":1065,"integrity":"sha512-6vBLKL84uNbIIvDCiJVhTcBXzK8SQIxg7psltEUbKc9tYU+kePlTJxWRoEfXRZkoNHiNm5joD/oLHOcUXTZo5Q==","signatures":[{"sig":"MEQCIDoT9AbXJTeX8k1iQ7TFG0zMivEQVVjqxFTk5O11LAjIAiARzkycJ/7fg6TRKZhee5pOtPSidpAjFgL37Y6nC/FFOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1430832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvWqxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLRRAAm49gMSRTr5OzCPAlW5Bfnm7/c9aOT5s6L2Fr9ws88Rjo9Mf0\r\nGtdgoQe/WH6YhPpd8luz+nOgONgRhHVh9XknW+OPI6APcSw0eeTUXW1t3BLA\r\nfV8ynYTcA2B4BW+VFtc434kz7SGJnyEBpl1+sXZ7k00MyTREn9u6fSI3QJhO\r\nGCeeT9VNTVuY1RK4w55LUj3kFth0gRlCLyz0gZbUrnl8VU6c3hlF37AWp9qM\r\nKjBb4t5qlj+QFdBoF35zJBAXrpLzgfiPF3LMteoziDAkE7PaWcV3MM8igYQ2\r\nG5rT4Srm7b7kHJ3OG9+uB7DejML7+mOuLC7UhG3Mf3uod/oVpJXWRsXtZgAp\r\n4ufwzfEkP0EHklxCVhl7UgH/WhQbNiZXf60Ra+7W3mHPojomhN98LBoyatL5\r\nVeQJjUaj3io3gEGw/dZh/Cj2zCONFUSiaiSXR6afBbPPy46ylu/2ilFS8pA1\r\nOor/+gZQXxbfLIPLXXPY+BEi76KGYCMfekTgkMw+mdzQPlbNewyg8/9Ra9ow\r\nlYUOwn8LPGIVYXWesh+litC01OnhLDJDn9+rWffk0/OIzRGaThnOj1RS9+8Y\r\n3NAWqqoUhwJsal8Sj1SkkXRlEtSn5DujP6+rEBROx1Mw5REU7hjyK+GWQk4R\r\nEr5R7Aw+HzAlMa8blq6wIV+WJOAfGcjrL14=\r\n=TYJU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"fcd9681387952cb4716eb13028ce4671aab20e65","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.1_1673358000941_0.7177806147821759","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c41f427e50fb1a1da0a39b77f5321706c0b634d9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.1.tgz","fileCount":1065,"integrity":"sha512-Opi6rqfhxerK570IMwd4Itx/bjhDaYGsYvqBUWoq64FuTysc4knKHrt2XD7lm1vMfMXNbJyyh/8raIstTaoOfA==","signatures":[{"sig":"MEQCIHsUsgDYI4rgLkMIkPUmQzs37CgACHZGVHFQ8dnOcv8vAiB72OJVNTOcfnwa7m2YZSsn1lSoi/PX4zc2Tc1K78ISeA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvXTSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrDEA//WUIf8ypCw5wRgMeXnjPGgWgFfFNdmzU8SpKx/5KY6dSUKkkI\r\nhZt2KJ8QADdx5wm7dvJOjwXVSIkfUTfUyYGvd0XGPr8EkWWrkBiAqm1P4hm2\r\nVDv392mccfYjxOoVN02eiJZa8ltEfQIejhYqBE9fq6Cao7RE61fxUkdYtkXT\r\n+3h4PFADVQGBXvJKfyzLg2fLUnivgDmWVhhsgrEIasBsQEYRFyw0z0KsA3NL\r\nw/NjMTMXBJKzdosXTkC1g7WcXu5mjJ3mAITKZrIg8hCRKzw8TlZCAo1pSPTl\r\naPqhYZhw91GWGE9b+EmipiZKkDg6sFkgMeZ1KHPngZu0D379ObKagVx2u5Ov\r\nVsa8YDhVAHSCsHScY2eY0VK4uiYFcRlb3hg0k0hm3IZ2wwjOyFT990osAqVJ\r\nynO6a+BDBZUGRdTk2tNHRsJRULQCph3VlEHf8+2JxUBqVuWmff6kys8KQ1XA\r\njbpn3JiLtqHQAyyiNg9Uwkcqf7iTYScWumilzBTIhlsOt6L7+cypftoWqa/Q\r\nGNgw391FzQyR35GIdTqo3sc3RzlI7NxB5hUrtGRkshMCTdxUZu1ASZxAwDoB\r\nogPnq9S4eGR1P6nuZ9m1xfQ6vM9IGYLwcP9Q55eoHLr+3nyEGi9gIHM4fqQE\r\nMrlWqWNQsJR48YkmYx82Pn2YI1vzi8Wp/0s=\r\n=cRxU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"eafa1786e056742698130f570a31772bb8596a4e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.1_1673360594030_0.13335663168224565","host":"s3://npm-registry-packages"}},"3.3.0-alpha.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5f90998407847e776123dc27dcbca302f1f897a8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.2.tgz","fileCount":1065,"integrity":"sha512-m4fNBbphQ5sjCYHb1RT0nO+mE3klWrSN1ESZkovc7umiaqH0+/hiY/qsOZme9MGXyrz19JJMF7V2MiYM5LYBcQ==","signatures":[{"sig":"MEUCIBdvah/WeCTkCaDQfjjjC/Ckmsrc9LoT+YupiMPd0NV9AiEAp7zAt1RN5Sti/+SATaXW3nCzsYoTZMbMCdSinlEiUCk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvXXKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+1xAAgXB8aEexjfrn/GVj2z9l9SXENt53PIBV/33oouTNvW6ljHiR\r\n8yGyASPx0kO/UENDOG2sji2ZTGsmkMzz9+FIP1VcthugDHWlBC7L/WIs7i+F\r\nfu6hFun33nY6+M9/+MjEqBvAj2tZxNCnrk0z4Qzz2a2QDyRL87mA1WM08bgq\r\n68g/rNlVr/A5y4N/9sbSxKQTcH5GUtZtNw4jZ7Pb+zybn4A1BWnlOK2rhKCx\r\nt6wJAmPjr62zL/zWRBsWvSgubpioaxNIf14MLk0+mCClLscJ/cM1HHawqBPR\r\nnN6ZB1dYoCfcdqOYLJX9Dp2PGDSjhhorMAeCEgSqZHHE4UW0jMkQ7l9+BMvw\r\nyzcQn9T0mH7vbTwN9qc7X4ZwYa15gtuGXLAQyS4cWAwV5Yh4TxmwWDL+hfyr\r\na2q7RURdWj6lfaf0RuylrPAnO5LX3EREEaaGWgd5M7O8r+TWR7rB7nwbEvOQ\r\nKuQi6PjjjVpxZ5uGeuG21AZYjStZeHmOWyCAQ8BRqzy+rdZHO0ljoYai1b40\r\nNejJKpsT5+7QR22EpQKG3NOHNlBNIttftHWWDA7DeiO6U7Ubq5CIzRQ6p4tp\r\nPFDwrxvba+R16xY433ARyFFMTSC/+l7N1ToHfsDWZkZ9y3O5CuetYW2R2QZw\r\nHukXJJFVnPegV8YjtnlYJ9G4/5vl3tYqg0c=\r\n=LfmL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d9aacc3afda516ef299158d30edafd864ec8453e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.2_1673360841898_0.01292145829114233","host":"s3://npm-registry-packages"}},"3.3.0-feature-f10837-lcrmds9t":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-f10837-lcrmds9t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-f10837-lcrmds9t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"700eee07847e196ea2bc3d3274fa548df70c41b1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-f10837-lcrmds9t.tgz","fileCount":1065,"integrity":"sha512-cmZ82asnGu/jhc17jhX31CcwtSQuQt70j/rj7NHrGj5W2nuSyHNq818cvlnrzQWmKP3AP6uUFXG7dyzCLwNowQ==","signatures":[{"sig":"MEYCIQCERMTBdApFU693B1WcfRltpKUPtnbxCZqSybf2DbA6TgIhAOLqEq5ilne79TmrUJfgRL4Nzvs2+ANgQPxa76CAFuh6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvqeZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzJRAAmsCgyJOW9AZGKy6PL84UpqFUDUJHvxCqSmseE+5dproE2JnH\r\nLjceQFrfUVzU6XuWy+sCDPcV+Z26yfLOX0f67OZ+SgM10bGgKMNi9XpPlTxA\r\nN5RBieNAlcLkqUzZ/+ZYK080Lo2vKsxXXRRZKOqetDl6NkJx9br87v3nUCte\r\ndf5K4amMul64y+PXzSRuywIPfpl3YDUQ+U9k06P1g81CdAt2Z+DfRMEISfUV\r\nitWLIw5XvFwehiZpk9Fy+b3Guf69OIMZ0wW4wa3lI1uH+yO43jD8a2/ra0nE\r\nnMH2KCIDuRalkk8dt9uvo+6h6mY8vIhtHKW8VxBcxMqddt9l4RIbEyt7je1l\r\n3ukfEs/DVLEXIi3vXjW43E/EEcZmcyQgAkCyhF3UOIyiCMUaEETJrVTCfRpr\r\nWjYuQllaeDEpTCWRc2CF9NX3Qi3Rg2fwuFhUwCs5iX7Q5/v5HYpBxqqWNAD4\r\nc5cBgTX3p+t93A8yxngxvUcGGwWmiMHZN5EHXbsVGSXfHAorjfc1034oAgZl\r\n+/glld0X8YdwZPJ2fb0x/IMXLTse830CRopVsKuPDhdgIVqywQFoX0NVy8P8\r\n+hGQO4VLkVRHu4wpJw3BDjMXNIdVBUy9XMf7giAMDd63O2LJIK5ERd8eIq32\r\nnaF+AlKw0z9QVB7Y3CETa2a1STxLEYkjLBg=\r\n=bAYD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"f108376e1cf3e955de6847014166ba80eb8d114d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-f10837-lcrmds9t_1673439128811_0.2218291291362171","host":"s3://npm-registry-packages"}},"3.3.0-develop-9191af-lct30u7r":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-9191af-lct30u7r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-9191af-lct30u7r","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3d69661a8489e0b50c43e0b1d6f7a2827e88e21d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-9191af-lct30u7r.tgz","fileCount":1065,"integrity":"sha512-QcE37/oIgZgLdhZAEFjMXANiFiStqH0y7xzAlvFf5gddDyDfK0ze5UF8iXUi4Wf/YlFoffBM+ITo90jZS+qKqg==","signatures":[{"sig":"MEYCIQCbdoLDlkEMCZqmIQHBFL+ZWXJP8OA/vudY4kE4O+TnpQIhAOP0NytFSONpYS+svHrek088Dt7iq0d1E5ifj1Q0TjpK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwADhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8dQ//XwGXDQI2uxwPXXayx02VULuMF7c98EYIfIidqVEHBPy9MF9B\r\njvWaSTzcBG/bR15bU5M8LbscHwfSdmF3TV4p6Pis5IaNEpNwG7xOHVEF6Exh\r\n9FPXJmF2lI/vAADPpDB7uam2YknPfa/YZ0Jlc9sODVarHua6ejKLeLf+SyqO\r\n4CZuuSLbfkiMLGr4+0OhDdbybKXdLieb9eNBzVFOz148Kq4qrlh7/YGieFm1\r\nsS4ONH3s/LJshj6XN8sRxPhLA5H2FtorTr5CYp2R7Qs/2Hl2BJ2ePohQJffg\r\nwirKGfD7UCrEdY07fWL4iVKrREiOy7yF3D6GFK3Gflu4FjGyHS5iS1reIWu6\r\nFujxrhZ+IpG8dc1SrHjg4dA/88EMS/GLfZc7bS+5w8CJT3gO6qa3Nu0DkreW\r\nkXC80LavvHSMFKsRiYTnNyx+IocSWrsYO/bcVyRiPxhYYOTYcMjgsx7e+Dld\r\nQTTN3vjM/JMSpAicfR8fY2sP0nnBTvCo/vAI5/gp4kGF9zgdu8dN/a9OlZzf\r\nKC4HS0yW+/EigC+OSFcWTclDNLKTWYHkf/Gze08Gs596Bxo1k4EQBsjdwE9X\r\nmXgYgAfdORrjjJlQLFti+5uzWUzh0dMQf9I1ZIKFKkZofg3bQ9EA5brbF5Hh\r\nfTaCP+Rmx0AOBKu53aY2hJsmBVZqV46wyNg=\r\n=I7zy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"9191af9c5102affe03ae10872c9773138466110e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-9191af-lct30u7r_1673527521514_0.33515585008929594","host":"s3://npm-registry-packages"}},"3.3.0-alpha.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7e0fafb39a6f57bea82f7d6695c8f2c5fecedcac","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.3.tgz","fileCount":1065,"integrity":"sha512-05J5ZnhERnjbofgnYfxE4A3VXJNrLydFnATghIjYDAUZ6lLUyYB5tYenUvxZIHav7WWbYKYWso9tgxITiK4MJg==","signatures":[{"sig":"MEUCIBlh1p9Bu1QsA+Doxa4h0O0lzpNMbF7cIhJY0b8K/NhzAiEA6t4wFROS8trY5QMRS0Zm7wMQTs59TmcdXwSAnKPN+dI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwAGiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4WQ//dDsyMx0NbsXZq1kMxC6iwlKHkZW45t0AeVC1XwQVZ7Ldazg9\r\nw7CYcVExa87vKjMYG6kAr+ylSle8E0GRhvkp3gnixm5UX+kUoc3HwA7o8yKj\r\nwtXVez+Qen5kKqIrRgqhCfqBRE2olAgsMuhkJ/6bsmFDNj8fmZxz8w+tAw3E\r\n5dOELpN5H7pzu56anpxw7xI/7aShVj/WdbZVBGvabuElcEDKY4A37Hel22H+\r\nU2g84UyL4rzX9R9DoOH3vS8ITRzflLbmqETDvf7b1xUAfqjYFHa4kiJc5+LQ\r\nWy2PL5NKtD8B4V/JM0FhDb1EFntqPRaiJkf3QN+iHJh5mZwQT6DP4nwjrKxq\r\ntkE/XWHY2uzoa5bYhmIxE9s7ckceQNKbHzeXsKkUpJ6A2kWGHqULJo3dMIwl\r\nwoqGsD9POfoBFENCNJ7pZr5hjTjE1OfvmCKRcFEmarbUlRUJ1xidcIpxLKzV\r\nZF2/gvfI2F6qFfRrTsA16uoox306ZFcGBn5C8ijDx+qqfM28Oghg58gJoENG\r\n0oH0kvMzaM9AK+IpgXl8ORvSEzBne216anWIhJLzJG0Y2WmiB/TI4Vwkgm2o\r\nmV8ZsEQJNMCMxtYkAREw91amFthIh/rmXOOyAJlnffATgCHhn0hXop04AnpF\r\n8pLjPlBk9DC6DoETVTeDXAAIgf2HgTOlrFY=\r\n=cmGI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"bdbb126900fb0b04e883a61a7edca353dfd32e03","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.2","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.3_1673527713815_0.44162895288812964","host":"s3://npm-registry-packages"}},"3.2.1-hotfix-63ef29-ld4a88xy":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.1-hotfix-63ef29-ld4a88xy","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.1-hotfix-63ef29-ld4a88xy","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b11d9ae43045f0ed55ddeefb79eb45514796a0fc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.1-hotfix-63ef29-ld4a88xy.tgz","fileCount":1065,"integrity":"sha512-ugk7/d5MbPYaVi1AHlWD2uaFkpVK28fger7hws6g+1Yk3C1Xr4PrJ7QygfAewH06Z4pJ82QrfFbu55w5L1ZDig==","signatures":[{"sig":"MEUCIGl8zhYQqRH9zZwb6dLKURa5UBOD3kr/04+9U5jtc2BhAiEA9jOsdFQPH4YbFiLi2Z+Sk3+h1cBSactx7wWEcFXbBQc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjylZLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7MRAAhBYqoilZ4jAbboTlviAjzZn7rK5qgCc6qNZr5rS+smhzSA9m\r\nRtCz464yv8rjlEU22JKIABa3U6kxAJ+MJb1cQUkrweCfugPf2AGMTqOME7vC\r\ntW6kBNljaoixyiMp+V76E1jRCn/+LFqcgnfAPQzwjqzg3cA7/Erfx9sYt2Fa\r\nKCamY8KHZFPcH27UzG+Q5zlChEGpwZFSE5azQ2eow+WJr4e/i6rYD9zA203p\r\ne63FJRcJN8MaKAkF20GRqwp5Ftss6mumw3U3Gsz9W+PSg/a/m8ANZRi/8Bcn\r\n+wN87U1crXN1TWy8N2KiH49wNm63xKnNjJN0DTRZG208NMGU/SU9a3tNCFDG\r\nJGtrR4q99OTQkQY4EvBJkapWG53zA1A8JPWFUrzpLvUlcvD7HfOvKt76fyyf\r\n1FKT3SNxQ6zAPazi/d7wgPJha2hirVHnukPERLrz681Xa95CkMbwTN7SWRlh\r\n4BQ+6KOcI6pyBJYLt1SKrxz/XXJKYFWvigE5t6ADJJQnIXpHceQSWDACjQ0J\r\n0CdWmtowjG7olg4xe4M8I7MouvHU35xM34yT4ZmYK0iGmNwBYyiHD8vJxYnk\r\nkW6NguXLN16fco1oJyOEdu7EibG8QOqDnpYtnATvMO3WKwHeeKeiah/j5YxG\r\nkG1LHqlMBgk7cYei3yhAPNaTgIgpDbfYmtk=\r\n=XvOz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"63ef291bf1feefa4d080d543553b7004ff0eabb1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.1-hotfix-63ef29-ld4a88xy_1674204747112_0.7037358232538635","host":"s3://npm-registry-packages"}},"3.3.0-develop-e3c946-ld4k4qc9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-e3c946-ld4k4qc9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-e3c946-ld4k4qc9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3d9cf1e5c7554cb184ee546c57bd0c5674fa40a4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-e3c946-ld4k4qc9.tgz","fileCount":1065,"integrity":"sha512-2HFIIxj4yIzanpSX2VD93YNNs7j+/kb2jdx3dzOZV6CcXKn8lxepCnYcJBfuvdDZF2LEEOopn4vZUkct2s5npA==","signatures":[{"sig":"MEYCIQCaCHB0mCPsVhZI7x6P5lENplO4gNKlj74ADwBeb6B0mAIhAMO0D5fy9frV1oJfr9lzbEiI7cp6uiOeGhynFvz4H/SP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjypdYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHHg/9HybltHhkETgD/pua+vpxckyNGdV7Nb5stgfdls37TlmVwrSl\r\nWz9g60J/v8a16iHKuBpb0jqBFwb9GiaesqW0IBAAf9OHXvLr3gH8Nn+EBgdn\r\n6Kgr2jW3pZgCazC39GrJxiAPlPBFTw+sBSWBkD/PJQN82ogK3nuQ7MsSqNuw\r\nrTFPCFMPgXM6GuIe8kehc8n6uLRxNsuWB9Iai8iTZVSeqq51NCsbLOFwivkP\r\nSPXyZx/WK7kqhlUAoUBXhT5jW8DnyWIBGaI69K8rhRjwr6fa79K9hvmErIWd\r\nXWyrZkY48v1qi13B844OhUGwBnkxhWjsqrsuUn/OSuvoK17tTz5FSFgH/HCB\r\nm0Rv4UBnBL7EAyEG6sWDiyGJor6C96x+t7P73HgGT7xD/zQ64rFCb3KBKNJn\r\n0395cuYxhYIEYkl5k7eUeYxuQyRaIrrmktaYoztj1LgNqPDYh3dc9lH8bq4s\r\nShMGBDAJ76u/xp9A0TgBLcgl0RMcfMF7SmLC8vEe3uzZpQ8SgALyKKQjfDUK\r\nMJ75dnFnNeAj6qguiH/228eiGhq5l+jdnUyQA/Rm1p1Qef/SyzmlEOu38gUE\r\ny/9+65/f5GN2PH11UehQd3/OZMxJc58s7YebtVjnm2a5uiHOxDaxEc1NF/3s\r\niFFF83qj/BSG4K7IXXExaJJ28ec/8yY9pyY=\r\n=+2PW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"e3c946b8f67b73a338bb8ae0989c341c002a4a2f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-e3c946-ld4k4qc9_1674221400420_0.8591416891227524","host":"s3://npm-registry-packages"}},"3.2.1-hotfix-310800-ld4kbc7w":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.1-hotfix-310800-ld4kbc7w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.1-hotfix-310800-ld4kbc7w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f729fafcd9c94e62808b2f78f9d33153f8d0eedd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.1-hotfix-310800-ld4kbc7w.tgz","fileCount":1065,"integrity":"sha512-k+WOizPn5tITjsanVlrQiKG1ppx7KarCcjw6dFarkMmr7UoCzihgZ33++x7dif3LuNuN5hNMAsK9BOJYEIhNYA==","signatures":[{"sig":"MEUCIQC8PsTMcXXBNU6+p6MO+g7ODhP2WD2ctOjN0yktDW6rugIgB8lk0GLoHD7EY2/jaPH9KlCEWg2oPUQzPUCnXLgnO0Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjypiJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYQRAAnLu+gvzFzjOKL96znc3NLy63GE51mcqsfawzt1mQZGVXnXhp\r\nBuLnj1Xn7EoSZdCtgwzlxadRzrIRe6dqVHhhFjJgfRK/rUkWQOhvVNSPwiNj\r\nZNloszh5d7Gn4d87Od5sM+jU9plLAYLQhnAmKXueg/Du8xx4/4aw5D1fkvIY\r\npcon5QZzIUKo9EavztXO4+5FcyvfpaIyMBnA4aq/m2EVzjOtH5E86NNQBBKB\r\nlWdU8uPQEyCQP/3OA5KDx+Hh9c5ctmShJcB/dYXol6m2VDtDnOxJZVm5Z4yC\r\nVZM/muZPVBkpRKvZrlD7ZhGY9QArm824apKjA9SOB/ofzjSodvZnTBjUbMF+\r\n++ICURC7v7Q1zb3wg1xxLCaOM0RcnqZTERmPZrYynQgmCCqeCr4bnZNekSBG\r\ntrkw0zDLv0G48fUAnzltg7zdpiwbPK3etJgIcZHBSDbmXwr30fD6LtydWRr4\r\nYowGuyFOlPsB3s6/z0XGrM3Y5q0F8s0SemWLz3h8tYNcA16L5ZuzqrEMo2i5\r\n6WdQHyFFGBNNpG+VgChTkcRH42iSWufpBKVc/6IS0bz638zMV3i48k9eHzx3\r\nbmAVX+VU4rT6f7MvOzWREUFRiNLGgMtK6XgIYizNYyYGkkaL+0NZDGXyrMXV\r\nZG4Z0XVCevfyLjGrhYh0BtoYdwwRijJV/0w=\r\n=vxVo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"3108000f51494e03f1306b5a459fc786bad94d58","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.1-hotfix-310800-ld4kbc7w_1674221692322_0.9326208937699534","host":"s3://npm-registry-packages"}},"3.2.2-hotfix-d96213-ld4kpxt8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.2-hotfix-d96213-ld4kpxt8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.2-hotfix-d96213-ld4kpxt8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e23b7c156fe91253c3eb07bec5c338f718344463","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.2-hotfix-d96213-ld4kpxt8.tgz","fileCount":1065,"integrity":"sha512-E0M0VnkrHTQlOFEf4PT+7gCHZoEibLhw9v7qHiF1UAWdnSkiOlVikahMtuEsD+/AE0U8P/+Un3x5D8ZSUvpXKA==","signatures":[{"sig":"MEQCIGTXqR/HZ50SQxetJleljD0zY2InnnR+0SmvsrtMfPxjAiB2F48QcaAUnKpygM9pmugpMtvQhGEbYkGbQOmfmsMNgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyps4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrepQ/+OTafFvjIay5subA/1ym4ziHIL87EAXVTxu86PNmJngiO+q6N\r\nCbKQblAmuTqD9kCF3W1OmITk1cszM1NMKVFW8FyyRewgfvKzdJiMWzd9MEkj\r\nQwQ4UDyTE454Q0BeVhdSdoHjXoRlhxP/33q+PNsf0k65GSbF55Zb23QZ2MSb\r\nVUZiHZ0zIldRD+LKNYDIzJtAjM33EN10Q9Fi0/Ha8UjCRLlLKXbUDwgJQSpp\r\n2H38UBhHqFXHU6hHRWc2yc8qTZQMBhj3ccVZuShIYVFu4KiZ8+OVaBd/1RJx\r\nrwFuJOOC0sMqjiPR1Re4RdPhrBIwU4dQ/Th8dWHr89AkF7B1i49ZNJPwjLLc\r\na6Alw2KNWW7Y8rs5F9S13TrUNZ/m8NGHD7MuntwKeWjpFREe/YdDvmM0z311\r\n21cOOP3rslkMMoZzoVuS/9ii7CeFfNf+arnAocUbP+0eBRIfIZp38qCu7StR\r\nHtKq3gz07gI2X/SB2yU9RNxmcfH1yqhqJti6MaBabMae9pDsYBQm4fpUMvGi\r\no2VOAJX0N2JybyEohRUsXKaegf1hD7w+J896XWEHXuhjIWFhOq52AX39y1Bq\r\nhu3kDI4RRKbEskcauQVvPPvYcjGBze7Xt5TjVS+hTOikOADC2cQrHkek8dy5\r\nF/HidPcFaKSH8zTgAEIT58cH/5M41yhZvrc=\r\n=RIQd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"d9621336352903fe36a4f06e6dc4bdeb0c7ecd73","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.2-hotfix-d96213-ld4kpxt8_1674222392198_0.7937144950666026","host":"s3://npm-registry-packages"}},"3.2.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bdc6eb09d549aebe0feb98d72d5d874e9ad4521a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.2.tgz","fileCount":1065,"integrity":"sha512-sK/yEqTeipFt3F8CcJnnWIJlavhb5u4VWCXXYrVi3Z+As3cHDzO1ZKd4TH/EsO+MVZJamrQTsN5jyhSn4IQmnA==","signatures":[{"sig":"MEUCIDgTKYBZJHtkI1Pi+eGI0pinpLyqDJRYS3NJ09Dh9mDcAiEAo99/6MunAOSmJ3zpYn8HjpCAdqWk7Hnf5rOYwhFKebs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyp/lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNsg/5AWLHTKj/FSPVkTYe/kZdZPgBHGxrLQLU/Z8chXYJGp591i/2\r\nb3FYHcHeZSpiZ0hmWvmpjpXgOrYg68wmy6MBeFfhbxehwVvWb8vy0zEUWQdB\r\ni6Og8WPUpct5n1uL3+/KJUfqGMT3I5ymXpyZriYe79icrjcSAdLgXR1e7Srt\r\nsY7Hinbqd9K6Bj/E+Fp1WJvya3GHIolRSWUr4SagLB0N0udXtYVgtAQ1vDdT\r\nfpPBG5lpYmoZzWRPZGqJUkuVSe2Iy9FeLd5NFLgFJoXkT7zbtB7YWQll3S9v\r\neSxENlPv1uE9fsQcxcJf25meTcJ87w/1tj5svpT3QcdR2uHwIOCQqDME3Mmh\r\nJI414RrVJLKexyTic/RMjxWfkwCvvTe3SFg4s/DY4nKtHhKGuqBaeJhiWJe1\r\nt1KZToHGNnBRNM6QvFmGzmiUo3Yzekd6zkvIrUV008kWpjpMJ9c6NTTAI4tw\r\nr+NrIwm8CgCv5BU8Xv0hLP2y0s67QyK0AIrCJOTClzeYs5AjSkRQT3snbrm3\r\nrjMcP9EIUpJ0tc8v+WexWMNaa8eLX2DOPDa2l2rThV78dNRX8hhi0TCMmP3O\r\n8IPnsUs8m1Wgq4AuIqlOPaQKAs1T6g8dw56K75A8P0SnU6lBddB4Le9JpQyO\r\n0VeNhZFzTxs5epLXumtIsfhPN2qOO9t7Xx8=\r\n=EWoJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"767df14aae2da4c168c4d508094006c34367603d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.2_1674223589499_0.6860266673976032","host":"s3://npm-registry-packages"}},"3.3.0-develop-85b3db-ld4p2tr9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-85b3db-ld4p2tr9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-85b3db-ld4p2tr9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b607bf28c3c5fae1a32f4d5465e80eeb970502a1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-85b3db-ld4p2tr9.tgz","fileCount":1065,"integrity":"sha512-PVl5KEt0YI8FQbqL+yXQGpiyaSRh7EoovqX8nQKrESzNa9o7W/k2qKh/qLbwpU4bveSmenRqaU20f8mB7M2xcg==","signatures":[{"sig":"MEUCIQCjcxyvj8bQctVweMUpmd26bT1IwibA07VcX1cXK+zpoAIgHrSsZLG33izsye91eIR6+lPMMGn2GRro0O7rg0Jv6iE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyre9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+YxAAg2F7kPAHBSVXxvRfbzkUpo3dzX9ccKP6lraqCazgXPNiwX/a\r\ntQx9LjSRj5Mh1oAGO2PoLf6GNnBl6E3n118/w0lYvXkNLtHAm1aYgT0huwDk\r\nHdq9EgV3E6Ez1Sq2gJEK9EM6BV822zIqUWqLh1gKKgmqvSxjhcaAtz88nu8U\r\nSgVcYkspint7MaSM0gB2q1NCzcKMzqRHl+EBgF+o8WHDsxA+/mnnvTP57JA9\r\nLWS5K6FqcqHr/F9V2CAj2ZCVl/CehFO+mxZ/OMMC5cJku/LPp4xozBT1MMlX\r\nAW3QGgsNDVIdpjLb4DoutqtiklMDiRQgWYbUfNzCDNi9gx1/pHuWicKC6ggg\r\nVRDifytJc7IZ0T1Gq745iOg/4MTCMYCmCrunouq7lhIgR8f5oxe5XYBC+dwe\r\n6VwIf72TrJbFpTmuv+0ZIcYy03GIVj8f/q6anuBlWlFD6xi3oh2vPv/BZo64\r\nlVI6r5vqzFJ8XVsHnDi5Q2plbhxxJI93y54D6BJvRUy5fmEF4XITonqFwjva\r\nP+Ss97xsFmQVGbd3O4Nfcho+XD/BaHcAFFUTLPYBYMA05Angnt2d0M0QAKd8\r\nxslUw9H+vSMr5CquKhAq00xKtbDz6+dly/E7psigFqGfmDSe3pqXR+2L+Yxy\r\n2kMPPoeCY9IG8dZEXqyCV9BFqvdiV2eJ6hM=\r\n=oSpD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"85b3db5d8970033b06a6d3cccdb9b5ec88e70acb","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-85b3db-ld4p2tr9_1674229693470_0.8549112187598853","host":"s3://npm-registry-packages"}},"3.3.0-alpha.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fa08320a3602cf3a8ae2193419e039d74e5ea3a7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.4.tgz","fileCount":1065,"integrity":"sha512-hCfxiSk000SN6jyaN4z0ejVCtDL2ROQGZwvpF7vumiafAR7iyS+hXeHXoXpjuBaDqPCmL+WnF8fLK2vFctPaKA==","signatures":[{"sig":"MEUCIQDgFjMIiiUSh8kBjyjAV3iGxQvKWLIApGmfzZKZ1OM5lQIgMktO9QdaX1I504BnouY77amwfMYt5WHDjPz7fKnGwW0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyrfRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodVA/+NDOoz295bNO1wh3Aw3yxO0ZHDI0zSSz+sFrQYu1BJXXBiy+8\r\nA9xCaqidy92IqArOw/rxCEMJ0VliS9tRX503yochJ3Md62Ob5OMkVH6KAYKq\r\nN44WcD+Dl79+y3UUVkyjwhp71MJZEFJJedZugUstFRQyI20K7ybxowZBmj+U\r\ncw2tQhaRe/CJkBDhq/9u4zK238s2m/1uapF1hLVgk1xfPqBJd7XFTQ/15PKF\r\nv3bY14oB4tWresfbzTEYXktL5kErHYNPp+pxOs4HxgKZY/JK35Cz5IfUfX0X\r\nHfVE8oNQH79L5jwrhvT1VWb8dm1kYEjRQ8Z3HP3sDmhy0xaIP+lpa9Wq2xxs\r\nN7OSmEritPD3gzGdvBWotf4JJ/UQEBhSf/eP2yLmOb5+C1sZTaPClhmH2VHe\r\nOAtiOqxCAOYIsjOjzLlj76R4l+DY1kAxRX8MWLHXmnqAdPn9W2/abXNNzdBV\r\nSXN5IdmXWOkEt1bXtz26W2EyvRS9eYB2oXIR25toyEq1j9wqWHm8NQs/LYER\r\nRbyuPSHhMnAcMWUXvPFJTb/eCunTzl8XzpbI5yuqz3Map+4Rp74Jm1IxuiGB\r\njICrsoIs3P0SyGm05H3v29Ut0pNNo+81VADT4v3VBFYmUHwpitj1wYvuwbcW\r\n0EEjTm6Fn4txFZnrzMMqnmXsfH7rhJG0qm4=\r\n=roUu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"13ed02131f7db7679050ad9bfa03105633c4c782","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.4_1674229713711_0.6285335438991229","host":"s3://npm-registry-packages"}},"3.2.3-hotfix-31d21c-ldbjyrfj":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.3-hotfix-31d21c-ldbjyrfj","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.3-hotfix-31d21c-ldbjyrfj","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1a219384c1d05cd46418de48ea9793b7f02c3fc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.3-hotfix-31d21c-ldbjyrfj.tgz","fileCount":1065,"integrity":"sha512-iNs1Fs7VDlbl87PYQ5FYUHWoVaDKjWmqAzbYjCyqKtjFypl3WmuLahGFu+3Ps79zIB1zBdhfdivMrHzqJj8vWQ==","signatures":[{"sig":"MEYCIQC0yrcW5AQMlLhD3JuueFISmEy3uGdDxABEO8acmycbtgIhANfSd/MssEOCYVjXjEhAe9hmA8iDUJ3zcfS9AUpzj5cf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0QuQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjBg//QvZE00Q2G1HWF/LWRyMDTvdrRqKTTn/6Taw6XpSCAP8yifgR\r\n2ehor7JrXyfml9vOurFInmMdAp9ar6BtQwOwFirGmpq1ug9lz7THU59Yklt/\r\n2S4twqspX13QvlWoKfCvEMGts3Iiq8LvL6vFONPPvcMAAM+eClb2y91yZya9\r\ngRitIxY5Zg1MfoNEAJazl+uF/+oEM1G9+A0LhLIUGlnDPdyZKgfCNyZlgJ+d\r\nizKBWqWfaehPEY/z7F2gKVBYVf3eEZFSG2TLdIBQTrq0i2dyGR2pkKKLrKMI\r\n0Yhokfrjnw0IPvGGP0pqK5IFZ8Abu0rtl70volR2aTMDRcWUYcjyLp+bsYit\r\nzrSpblSbsqeSDsCSKdfnlCSSzuTPcgu4d2aKgba9O6VNb2ruWt9kIljsb/lK\r\nPUmer40DUqjnD2923rgRHLNBe8nV9CdWjaHhn37bpEw7C8vfQWldDqWGi4iH\r\nvflkQHQUIAfQofNcJQzhz2zgUigI2wSS4t0XDWQbxmftl+tPww6wIexzMAh4\r\nsYkn4JezLU1iz1IXWHGI9qixzXDjmtUKvK0h2D43sCu60Sg59ljPtK11x/Yw\r\nW9+HOPCLUAZcou6TOLvq7rvaqHRt46wZfHruzPGU2cJQRswgBngJm5myTRcT\r\n69/eFC6y5SbXYiQOU/w2MJwqiv6MwSJ+dXw=\r\n=dujf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"31d21c20a13a757c01543eff667b731d8d206dc2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.10.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^9.2.0","should":"^13.2.3","ts-mocha":"^9.0.2","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^9.1.0","@atlas-engine/fullstack_server":"14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.3-hotfix-31d21c-ldbjyrfj_1674644368398_0.19771737969545122","host":"s3://npm-registry-packages"}},"3.2.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e1df2f425e5a281923c479e0e2ae9a53f73d064d","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.3.tgz","fileCount":1065,"integrity":"sha512-SUoWv4Zrl4lHTGY9yBqU9r3g4gB9fkuLcyYURkmmDlloKiFVcX58C4XiqK0/r0uxjTanpC87QDlbRDSxbS18DQ==","signatures":[{"sig":"MEUCIQCECG3C+0s+wOQZs5Kg5gSpsk5kA9sryhYz1ku864MoFAIgMWwbc5UPYwQPUa4ebGTeSn4NGUq8AytfC7azbWtLAn8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0TjhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrR9hAAlKLP3QlWsLAu/LEmfs3RxftrWn7M1iJSls0V04pt01d0DheJ\r\nDiI85ex8Iu1hPkuybmLO6HBG5rrlBTkWle+iJ2kCDZbGKdEMp1qWXEI9qm9l\r\nzGGEeAQUnlkQ3SSJ8uJHi1D0bPYlWcqvIKEBwZozzQNpNrSsyl/T3DBV5YT9\r\nIBM6y5F1mJ7WIRIkIVDxGRnVC6Hz/1GaPm5WLZw3K5lw8HTK6HLR6tvwF/oL\r\nrc6V9sonblsBRe7f3bpU6xIKOxd0pi4eyXWDRWebWXODUtZDldyHlvc1SVUM\r\nlzeLPn0ZQoxuS6c32YdOWXMMm8kXH4+CfEmrsUfUJJeL/km3TOFLIkdhTemD\r\nlh7SvczzHjSzOU7DrZz5pGx85FOFL8nprFsZEY1DN1X03QC7+8x/8lvvbTDg\r\nzHc14TGO+K9D7j5YQnSXTzWczkubdAXRi769G1tZ7wcfUAwkfN9/6AS8W6EY\r\nuiF+izvR5c7AcR4Jhmi8w93IeoCbkmmsgVs9cIpzkq9IWZ6tj4cKnkwpqjfc\r\n4aeR3E3G/cyM/BhyZqX1Z0QIZ6VYefKUrGPdRHgMgU4FVU/x2pIFuPOcANYg\r\nlZGT+8iZZUSUcEymvlxarDXFWOTbOfnLgfBEXeKPSu/nqVcnMfgVlzx2YsfB\r\n95PbYStqPyZ8iD3GJNYXBJluNgPGzPz23ds=\r\n=3w7x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"a8b88ca610af15689cf8b8ed77c07d28095521f1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.3_1674655969267_0.5060958211628146","host":"s3://npm-registry-packages"}},"3.3.0-develop-d2dfb1-ldbqzq0j":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-d2dfb1-ldbqzq0j","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-d2dfb1-ldbqzq0j","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"36b9bd296f8cac7d8f69ec6529b0b06afb553722","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-d2dfb1-ldbqzq0j.tgz","fileCount":1065,"integrity":"sha512-+dn6/UFjRPnliclOftV8Sb6aM6giKpk+XG4rWJvBd8qK1YUTaPgKg2nphl14H3MFyRSkRmzsrk3PtCz+PiUbrw==","signatures":[{"sig":"MEYCIQCieMDzv/xZPoCIBQOpI8M9op3bU2rIsDRlmXZKwixm4QIhAK1eKk5snYYg26r1LqVBn78beQ3LPOkMwCBRt9BXtycM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0TmsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr59w/+M2hZ/p2WQB44z53I8X/+vPCWhS1xfK+nKA+fV3skUeTpi/Iw\r\niWVb9Ne+2vpjid/cltw3gda1osbMMRvGikJM1LcLwKC4EIhgySE1klqMcMDL\r\ndXxhz2EfAA5c0uuDKgYxkqwYiwURADhQIqd+5rF96Drj7uDFHEYuRcfPh4A5\r\njtJGRDrf5gNZsU2QtnYOy23ysFk+PqnOg5VQEMXHwX7syGrN/v/hkfQBNzfs\r\na2yKJGrKSoec++uBJa4GIv6IUxWcEexP7qKtShXJQ9QTou4j4yrGm/TL6s9f\r\nOYKa2dI/ANCGr/kwoocvBr+Isznojxt0ahjy1uam1GJELM1S3BcoQp91sRVS\r\nJBqmUjaexKDUFYQZ+BDy/b9X278BZP0PWkY4DOvfGZXwhuqeY3QSU/PrUSaS\r\nFMLCaghjOeGzpdtZGKJNnLpD9Q1HpajRtg1kbfBEZh3xiC0S7S1YzSaXrrLu\r\nmOPRZbPScIDokepPEQ/xtNIMHOCt0q0q4oSAT9uNP2etqRFu7EqJMQreoMg+\r\nYuEfvdCPyjvDsBdwRThC8oj3JOZhQCF3ZFPdofUP9nf9o2ykJ+EgTEHeotA/\r\nfJcsH90Tv8dzuricaUoNHy/9gzibwvjcHoiSwBxl83UtKbT9zZWOY9CXf1LQ\r\njyQfNK+yeQU2Gjprs1ysmZSSNrdihqxZHiY=\r\n=Ww+C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"d2dfb13d199695ecd7b0e0f9136571145d0b44b3","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-d2dfb1-ldbqzq0j_1674656172441_0.42295821148163637","host":"s3://npm-registry-packages"}},"3.3.0-alpha.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"625dc6ad38a62d82295368b9a0b62de3b5182f66","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.5.tgz","fileCount":1065,"integrity":"sha512-Cb6PNVpFmwDtNnvfdt+4oiOQKiYditY19I7usSAGTF2bp7KDjVBdJk9CAreORqf3o2MmJYYoLtv/P3AmI9g9zg==","signatures":[{"sig":"MEUCIQC/XXWnPhox1tCCVhMydBpbEVSKSLN0Ew4wUMxkD/cvLQIgIjilpiuJLe4o810sWJXoXUDUtSVanKt/k/066I4pgqw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj04U4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrToA//SuZtISmDYrSwtFVB2R6qycxPX+2Ssi6Dio/6w4SZt+O0bE5C\r\n+MxZeGOgDJ5hLQj4dYtEI8JNhS8GbXaWnkpCWd9vCCVjXBl7c2TsabbHspWG\r\nJVYdwUimsiRjnb9vWE+gD0R6ZHoUCKZqGfuQOqLSIC2vjJB1yYrF+WbW+K+p\r\nlyHbN5zlNkbXblLnchteoHZOQrAmclTwcY4xZgWsX0m/KX0RbOIEpt2DdgHe\r\n0oLiCImaqeYcQmzP3Q5uwtp7kG98Ljfwwpt7Icx7wIGTO2KX69lUQ7UUzktY\r\nuh2CVyJOj/hICo9RrkgvlGrF7Z5aTYxyR+r7yasMeVg4q26/SAAeJKqZiCxe\r\nmnAIXT/V1gx60NjMb3kp3ym74iMvyI3oohRKs5UG4SGLhPLgv9JDZoZLvIJx\r\nwU0taWjsT9GqtPYV8k7oJuY7MPzh3NKqkPwVrw7hWJnyWkTp+xQ1w/FpAK55\r\n8/534wjUGX/w18DCDhx3suvyIUbsdn7wJk+R9gxe00a3mRed+Tvp4VcKzdju\r\nQ7fNRNBzMYJTnN/Vvmm2eSui3G1ldrQnfzbu96fjvz2+KsS2whDKlJjG0zOR\r\n6qZ/sVuJi+FUzcFrXtfzqgU5sRiq9z1jRTerZsOs8EFPdAB2U6d/r0xZ7MsD\r\nMYZmQNZHQzl7/04mvmSECM9JVkx4Hf1PkFk=\r\n=wmc2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"c655af16c8314774880af43c5c19ff63532825a3","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.5_1674806583927_0.9908044312075985","host":"s3://npm-registry-packages"}},"3.3.0-develop-435866-ldithtlv":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-435866-ldithtlv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-435866-ldithtlv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"eb594418a458aed0890e91fb78a9e6357d4fe4a5","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-435866-ldithtlv.tgz","fileCount":1065,"integrity":"sha512-iNlIJa0qOf/t3KIRjGhBORRxzjttXesZBWpUzr7gH5EvUEMJ+wdEc3k6Fymc2SJcgAVagUnsZgGX9mwPd+ZXYA==","signatures":[{"sig":"MEUCIQC0eWKENnl+2s6kdB135H2agJh3dJnT0PY3OcjRg0QregIgaQVauoRsHSucEf+o3YtLkR4qOszNs0xN2BgMye4TyFI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj17+WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrklQ/+IsD4VZ2UfC8CjbeJbzeV1gmM+/wUfeqcH7THTl8ERmoyzhXQ\r\nVMpBgOay/FmoTjbWgzurGzz5YtuWs1Ny0lBXAWTXNtutxD7Y+O0F3t3I8aIF\r\naXJgT5OS5O4gUmy76FTr2YWA7W/9M7DorsWduhQGyuu5fepFb/txB/uNIpHm\r\npIu+Ry6iMq+P5F84EzBOpFpWYU9HaUV4IiGkoTUIkclhroDVJgmAUWkP00N6\r\n4GL+zHEZoRE+wdWBjiSRisfTki1OKfTUSxSwc72lDNT0vRZ57JPhyfIOHZ7E\r\nVJzoOiNWLiREu+K6/6OpjHLH/Ic6aU6KvpztRvPYcx8QcZUOS6czEjW1Y6dY\r\nsM5V6oQk5gDKAZxx2warlaU9+j/itvFmYyeLLTCn1jt73F3SU74YJ0Vn/OAa\r\nm1ixgJA5wc23nThV0hVkHiuD8w/2WMXFU7LXyYvY3FzUkILzSL2Vpx9dXVTt\r\nVGbSk9DASpbBiXwpXTaJxfJfRiDXxN3kJ6ARSmBR7q4Vj0qqqyf6mIO59KvB\r\nMrNQXVlyMSNMMy0y2Q74K3Dzgs6fbEPQ+pSvuHqgMNv3qkf4mU19OPv9Uhal\r\njEnbOkdNUkU/bQSiEcj/pt7qS/LEhZPdj9H0VpNjS6K6P1bXdlQu/qUMaUxI\r\ndVCvyiqxz3nh9QOtD/+GOEbAtyxm33koSow=\r\n=vYy2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"4358660c618562968f97842a0c6b4f9ac85a8c3e","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-435866-ldithtlv_1675083670547_0.9614486985876256","host":"s3://npm-registry-packages"}},"3.3.0-develop-8444e2-ldiup13t":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-8444e2-ldiup13t","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-8444e2-ldiup13t","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b68675ac67e9e8db4f3d1bedb8580ee4bd3ad3cf","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-8444e2-ldiup13t.tgz","fileCount":1065,"integrity":"sha512-V7XsR9iE9Z76fvQWM9zfARUEtGnpqos0xW9KHRbxIeeEnkJ12RByYm2HPK2MXzXEaGM1RwgJsK5RqgC0sD8Bug==","signatures":[{"sig":"MEYCIQCrVpGLV7oWcLvqKVQN1laUaOvjmIfbhvRjYpBACYBfIAIhANEhLfMaeoRrIei9adtDMRFMeVzzZVj0AbToTnLcupmk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj18dpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGAQ/+OCIyGFwzsNYTjIfeAKZHSFBSh1rb+61upOCFNLQaSVlAao7s\r\ncsrTZCTx4LgO9euoQotG++dCKXvd1hunuONHVza+HAi9i7jzWt7m3b56yQI0\r\ndrecXOb3qh6/F6pQWMHlZsavHSBhpHlr1EGWipksVOLDFMVrNgMsbxrgg0ow\r\nKzW+rh7m2RjCcALNaiRprO5cY2Rbh3FrNtHeI6BCH89GeLMdAboSf3RqgPti\r\nmY+9nx+AEZDBwAOC8ia7CJmhdcaVsVZFQOe2QQZNSjQ4jZ7K4H7+rfyDP5iS\r\nJDpiGEeL545Blztj3iHXLI4fR2C4gEPyuttpcrWiPvovSU+pTZerIZMP+kTN\r\n6fm+AaPZDTJiq+dX6Pd1i3/M6HtVz7X8ynZGXnUM9SGwHNhVBSxHfXZqAgg5\r\nnqJVsIfbQPXe8EweqYSVVTPZiQ7n1NrTHv1kZZWjL5W5XH/Ubn+bFNd5/exd\r\nFeSG+xk7e+U8roxQLzoGdLpcei3oW/d+7sub8ky/uApbYN4iWkFihzt3nogC\r\nvO6TcEpWiBLjKAK2h04+ec2L6bXZALdiXabSz2JZz81LjukdXL1yzgBp8Wg9\r\nmd45Z9OEqjxa4aQ/bdOG7r4R/4AKfSprNivZnfxRO//Bdr6hpf63EwVMzvym\r\nKaFw0fxdewfZKpnPnzAQpOejfg2WjdYVxqw=\r\n=KbQF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"8444e21410d6489440400af22f3888847531602b","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-8444e2-ldiup13t_1675085672973_0.22748519251485244","host":"s3://npm-registry-packages"}},"3.3.0-develop-6b9e14-ldsmlsmo":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-6b9e14-ldsmlsmo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-6b9e14-ldsmlsmo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0c67cf956624ed9da349d8594a934a5c49f78f6e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-6b9e14-ldsmlsmo.tgz","fileCount":1065,"integrity":"sha512-mKS7hq6ez2roeChnoR4XyXN433VjUBzh7ugUQfbhNjilZIf0jWqxYjuWXZ8QWQ5dMk9uls1gXEpY0XDc6W/+dQ==","signatures":[{"sig":"MEUCIGyw4nsRro/U8wqaqk/ZNCXZ/Gwkx3bsskLYBmiJbeQCAiEAqqk/dvIgJ06nWIU0MCwtJj+gKBadSzeMq+fqzn0mcrM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4Mw4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqWGA//e+1xO9d73Dx7YvW0DQjP3LkeU2uCo4GvBYzS1az9xFdHQ89E\r\nxXkt6RwlPFNrorYWzboaGmdSuEuK9ks4jvzPMG4dliL05ZsOC1k1qsNioZ9P\r\nqCfNK9OpZpamssxo6B15lObj9Djr5TmIiXGtmax/go9Y1FRUiDI+32mGmNXq\r\nW5wMtk+8pstYhgN83BjByTCTWqB0o2r2OAnTKo/+aVtXyjg9hOKL9xEhNZfn\r\nxOc4LDcvoA2YOeyFKlC02ZYvOstXpNBB8MSykEM2xwR0ffg9jUG2hXPtSc7u\r\nHwBYld9igssqA5SXct6b7U53asgmdPrcdaoGHvyqi/tfvVNJFCmnqxcepZ5Y\r\n6IEIhilmebNE9kUas/IYEa9WwLLuFJJbmiGHV85mzPiwnNJwE+Izs2WIrJBH\r\nonaumr/q0izXzG3tO0d9kQafs2NQ0xpgKydyQ4a9sSJF5AXI2ezykLD5yvIQ\r\nKygD5WbxCzdMYRc5Ks6vOzodKnfI4c8ztQ2pnI2/TNV8vMS7Yq/vzlAACoxJ\r\n5L1NKM3Y4GAssiBLnPwUaQ/5SXoMrBBhMZx6NkyBMC+tSXtHV/FPU6jmkTOT\r\neryMCevTTL51B9/BGnZv5yYAbJMrtwLVRmTFrjEGFK+oIbuGq0m4RIypBXkD\r\ns4wVwDFkYCnSm9upyrpjzDWY2GyIunPc9xE=\r\n=RFv0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"6b9e14e2374f45170d9539ad261c12ddf8226dec","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-6b9e14-ldsmlsmo_1675676727922_0.1422402526116402","host":"s3://npm-registry-packages"}},"3.3.0-develop-ca8960-ldsmnq9w":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-ca8960-ldsmnq9w","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-ca8960-ldsmnq9w","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8e193547d10df3ef47db34fd55ece1eb3f94d2c6","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-ca8960-ldsmnq9w.tgz","fileCount":1065,"integrity":"sha512-KfPiLKpMsUNmxiJd0m2gFj2kUuT3pdYjOHOrTtFrd1UwPBa2KiDjgwTtamoAixXBf97BnkhAJ8FJIQgHxSJEJw==","signatures":[{"sig":"MEQCIBSADG4TABRzagXKsOM5Hkqk8XDB8cQ0T8sgR4aYBeVFAiAbZSLVo/hQf4UW8HAQjGmMYgLbxs8Pu0by6sRttTxiSg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4My5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqyQ//R20JJA1uxc8duH+OFRRJEhvwMNEs2l+/0bZ6zDH95oqYSpMS\r\nhm6hBfzBzX79V6bMLGygk2b11duBWTNp56OKRLr3T6hDHz4Y4SB0pKY7cc4A\r\nLVy0CfETJ05UUqVozkIOkVKX3idmWXjIgB1Bv/4G35DhgUtY7+cVZ1bBtYQT\r\nPvR5qQ3m7l+6CWocP7jF462MvvhuifbWZ50nJ0rPwPQ2CVAuBXoff1IJd0fZ\r\n6hZyGUjZzRRxUoLaeqNufv5NaFyH3vB5ywZgGzjCNn8bhs6uWCL6Numyfj0g\r\nryJtiKTftYOVyeaNIYx4QYB3J5MCRnBQqnxqag7SfzJLuCH0W3RdRtBrARK1\r\n0LhKetsB5tqTJ472/UUlT58UoHwDCqenIFVj9cpI3gWduD+TXkzgvLbcINW6\r\nBUR8s8DIMZMG94ewkQEwmVUj0My6pYnvxVEbaFTgDV/FoopEPbXMhL/OwA+x\r\nH9/8LG0Rz+0jEJ6CI5eXFyJK5fgQX4Ktb4i5zpZMI+hwCpZ8f7muPcrFv5kf\r\nwz4S9ubrqkkHXj6bGoqzIcenxc/UyQ55fXMMRYnMoxERZcZuR/yrsEKgg90g\r\nrRPmkP1v8tePBH7Rk5L6SHIO+dA0W8z3zCdiVPafRKAIh/8Ve66QMGE5xalp\r\nW6yDQvxtDE4Voxx9Fh2L6GpVlASA5dkhgdI=\r\n=+utz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"ca8960abef871a1b6c06ffe8bc9ffe985be82b98","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-ca8960-ldsmnq9w_1675676857590_0.9205802280844964","host":"s3://npm-registry-packages"}},"3.2.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"290eab43a254e1032ddf45db54165dc9fb32b954","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.4.tgz","fileCount":1065,"integrity":"sha512-fiwLoJxkiO2t4BPsp+dQc0xnYRj4f87CxYx/XhkFeaLQ9wYaVFR9rb8UenToYNhQrGt1PHRYW6zpiw5ulmobMA==","signatures":[{"sig":"MEYCIQDVZWSEmn0YQEKvS+UjCbxfV0ht5zbUF3xlFdWwoS40QwIhAML/+iJwlhnys4IiJ/YQsakaEum01CmV/l+y148picug","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5KzKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoiQRAAgPXPN/tqxB65adu3iL7EB5k3X9x59jlYpvNN7zTOvTEoo0ec\r\nsR9s7TjtV50uVkJUfeu4FlogcGA9ko7vWE/lrsVeaR9uTD/vp5Hi84VwrUH1\r\nKFjsZ55axQXvxcCOu6Jt/dLnRYqwp2dRdngjzPGAtYiPRNNsMTQpCMU2bVLB\r\nDmUUBkBG+qC8V2WLwuPHqJmNIYl1PAOWh7GulQJzboOvVe752dcYTQVRdiwP\r\nPfDRPhcnm2c0LOL8/lnrXkE6035cMwhayEwOeuaBAWRrw3o9mY4NbR4FLcqN\r\n/1/78tkcdKoYftA4mkEPM8N59DZbfnZVAGUMuKwH3z3UE5v11dMU6PvWYGb3\r\nRlH9g4uIhDnQ6kxhHrFqTnCTMpmC6D+p36kG7CzJ5TUsm6SytYDwWSYzW3f0\r\nNLYAWSYRqHO6ZmvHy/kBUdTxM7YMVy2Oj1W+cL7hbfK4RBG4A2S30ws4aWZl\r\nw1z/Swi+glNqPM4hZ6pkVMEtduP/LYKj1aDza+SdgfsmHXXuM4PazwgjKTXd\r\n+x5ZX0nFAB++3qK4/KvDNWPGbC7LKF5w6gpalDYun4sKjWsfzghb9zV9Bitk\r\n+nUD+qyBKw93IRK3CeifguklJWmOvoy0JOmNyNXdT6nD9oHIk5IAz+0vEgG/\r\nZbxhbXR+XsP7IAtH4W4XJmszje3Q98AAgOM=\r\n=rOzj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"034d474aa736b123a4ccc87d75f5afd357fed7ae","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.4_1675930825828_0.30357929131776795","host":"s3://npm-registry-packages"}},"3.3.0-develop-192295-ldwu1sce":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-192295-ldwu1sce","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-192295-ldwu1sce","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"215f3328c403a075340f3efd63bd147dd347132c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-192295-ldwu1sce.tgz","fileCount":1065,"integrity":"sha512-3CBV1xye3rbCiXcTr94QFAizMTwX8A2g4uECI4xij6Sc1tVQyYOGEzAEIcgk+yrdloQ1i+Rf5P0QcIbefYbqjg==","signatures":[{"sig":"MEUCIF0TsSexVmxooQpjhnXjjedjTkPxDdveu6dUWp7tkGvoAiEA8kmQZzqKOplEI4/uKB6rXgwK/fueb6EeTsdqRi2t7bw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5K4CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqnQg//QiyyOF6PXRczyBqUQcfbGb5jRhG0M3PR5k83aj3o5n37UShd\r\nXbSinNj0AHfGHx4RYQPGCo9ZR5cNgw1a3okbfWT0ifVRnYH+AsdUBm+TRM6I\r\n28r054swQYUa7b8AQh7beA4L6whZTjxCUlr8D8uJ3GmPRzHi91uHwopoL/H+\r\ntm2g4omi8E7w78SujcN/NANVRjHj1aDoTAHD2diOM/ZXeY+BM0ANH69syjRa\r\nNFc390OsGR7SzBIEK8sDrmpRqPGV0UxMaSsfd8DOgjn4+3imBxOQB6KlANJX\r\n6hSvm8iznmYVNhQ8Izd0WWH92vnSKoCxHo/xTy9wr+oBRj4shJV8B5eaguFQ\r\nSkO06/zKjTaO/3SPS/QL4az5nNeIJH4BmpeKNSL9UKe73k6prO80nY4iwUvn\r\nFS3ydkGLCgj4JMmeNim4JYAMBDs8uIHkW/E1tIGj27JD1WWWN5TdJsYKMkWi\r\nIcwnz3dwSVIONJ1B43O91WeVPE+4aMVd4BcaoWE6idbAH/ct6Wat/sQWioiB\r\nJHjA341mEGOY+D0jrb+Z34hogdcuVf0TaHBbadyEwzTixfupzhB5Bu0mzsiN\r\nChSEn1LYbjh2kSjdxupaWP5lLHhPGYy5tsipq+GoGSKLusVKEUaA1f9lJNUa\r\nWrsCkHSiM9nCMieB8SJAkjjOqJtJljQ6c60=\r\n=AV0q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"1922951dea144cbca259b08abbce5ad09ac0cb3c","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-192295-ldwu1sce_1675931138570_0.41842909385181515","host":"s3://npm-registry-packages"}},"3.3.0-alpha.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"84652275cd1ade07c4af66319a533d3a9fcf2810","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.6.tgz","fileCount":1065,"integrity":"sha512-3u9OKGoFIZQMLjVFhDYjBkal/fXpmunzo44HKcN3tjXvytVt9kncGFZ6wucFxskeCsG8n87NJsdW73IqZ96ZGA==","signatures":[{"sig":"MEQCIAhzhZpBTZ/2AaceX64K6B5Vn3+mWhCzXoB0nBYnPwP1AiAMg+qRqx3l7YH4wFJm2Ryr5ObU7owOZt7Mf7z97scnlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5K7QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoaPQ/9F6zs81TFZVxF8IEa6rvM+ekkM/5F7mP/iPkXc38XYmpmTn+6\r\nURDkY5TOg9QguYaATHfww/rwX8pEaEHV5Kxh4eW0QkJIe8ZSxxxHw+aWTgXt\r\no/qi57nCK31Ujwn79XVoXLb7PlB9QQxZPFi7kUh4dcpRM8J4VTS8FwhH6RfC\r\nWLLtdkjrxq5N8ME0i9wjHy3C5Q6Xnelb0qrYC8kC0vRD5FRLWq7n53kcEKgg\r\nXUq/FuaYVbv4zrT8oxKBfsDylDTuHJqCsb7RR+JGx8hBV6QsxDgWxdOT5ozO\r\nv5RLugiz2UDyNpnHEqv7sWV2txoP7VqzTrXrsq7LUNH5CTqo7i1Oykt1hyVv\r\nySoIBnh6R6LpnX73QFBdTGaLLQzIxJVRgsRDfqqmpAaPwVbZNQ7pLNPx0fm7\r\n0JYfTnzW2eQ9aLgTxZ/mZ3IrL9mlUIfdhB5/62njTT9xzNQ2R6y6UCXWtyFu\r\nm9OHTLKcIq+1aPUE0s5ZBiB5q2CtuR+6Xwv07U3z1H4ICsKwI/C/Slkc1hOC\r\n8+GNlU+rXeOkBIeaWcYAXvhRHSnMYZSETBrEBB7qN7A0n/fPdLmuFIoVee8c\r\n/uO7Oe7Qvq7rd3MlSK/8W8mIP2np3eQetCpz7VuWYL4cm721OQIgPl2TrHKE\r\nX8xywW0f4V3ncaselDns2hx3oURiAUnYftk=\r\n=hEIe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"b6964cc4afd995e0241515112ca7207f3c054f6f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.6_1675931344084_0.453735296459123","host":"s3://npm-registry-packages"}},"3.2.5-release-764dc4-lemo5hg6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.5-release-764dc4-lemo5hg6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.5-release-764dc4-lemo5hg6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f75b47e0d3543c8e69e069e770f64938e79e4aec","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.5-release-764dc4-lemo5hg6.tgz","fileCount":1065,"integrity":"sha512-KsX2rN6Zj4O45oPVy5P7iSy+Sbxg71whTV1CvugOz9rAH5zXS4lm4cjzlmwUwgRthmxSh3IvUxHEF51LnGqRgA==","signatures":[{"sig":"MEYCIQCxF/ilawaQ5EhDrN1k8cv9QZxXir12iWZyncwr7fc9CAIhAP91WWYdOYlAAAOKNwxpa+sGG4US7wcez8P0cvtCF5M5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/IRmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5Aw//RzIpWkdWmkNMRIUpb49xmO4GU6VZz+t+zJG6iGF6vIkXx/LO\r\nn/mVnOe1Eqr+krvx22E+8IQRW3Brp/jribIfkR1l3hcahDqsRatcJzXr4xLD\r\nbL6KqeZRubAllH2MJCzRaoczpbe2VXMFEGVP55s17YEsMDKr0n4vpyhaBZGn\r\n6/wQUXTFdogOg62b+6nQiP8amNEkcYuNj7IFvwxL1aQBaXwRpVT/5cJiScCf\r\nNLI0gd+9QMoeP+LYkW4BiyLGBCq8fPqJiaH4Xyhwlh8mrdfeBmZ6ZNmh7ep1\r\naxocScJqNA+Adycf22YkuCSjcxYZO8ozWIamvhp4DJvpv1OMQ88wyivvmmBQ\r\nXd/iMxMqbBdFicRYONaCbzEMqqy2cRM/ItBpLynqJ5E0AUYgEreHCrMr+m01\r\npcLgzO/VXI9buG7ND+pKo1xq5ijiSgSf466wo9+++6u32Pvg0B53VuVRehm8\r\ndA5bzERv7yDPcwYxDMtbIawdfjsVtA0MEbinoJfXe0zlpuhcw8v6JbuJTVvS\r\nWjOAKzBZHgzMVmG5PE/ZGd5/EepE8mLf0K40L/xMmjC5HBdeWMIu/7+fQgtB\r\nfV+w0m7akAvtZmqS+UR7DPFyst+pdEkFQQvkuKYcDfP27rglycGaKUCbvWgr\r\nCq5vcmrp+FSSE9faLgyJJ/zT6gS0484Umu0=\r\n=RWFP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"764dc4711b40c7b6d1f1fd85fc110863c612d56c","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.5-release-764dc4-lemo5hg6_1677493350161_0.4949507203931205","host":"s3://npm-registry-packages"}},"3.2.5-feature-1e4b3d-lemo5ncz":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.5-feature-1e4b3d-lemo5ncz","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.5-feature-1e4b3d-lemo5ncz","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3d610fb1be8e74e158b508dd590f6e1b22263085","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.5-feature-1e4b3d-lemo5ncz.tgz","fileCount":1065,"integrity":"sha512-GUk6S9ABpr5m9rkGuuy3qs7sxJM1df3t/HrTfwT/Us8xzco/4/3zHh/NyrC4GRrBCrnm91B7+lV0Efw0OtWqIw==","signatures":[{"sig":"MEUCIDBLKtg53cfFG6wS1e8MBl+fX93o8Al4dIyfRZNUr0ZlAiEAp/As2DcE7iLOYMr0UmAFMhJVMlWPGsYo7cjHvZ0YWeE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1451424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/IR+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrD1BAAgYGxqfYLkv365qRmKxK/Vz0tjwkxpS+1dvSSMYhyrtKG8Oo/\r\nEWH5yXwojoodQuL40z7FEy1dF9THUlZ0vcbU00NSa++8maSaVYjL+L2CsHEQ\r\nlwZO9NZsJDSJIw/8pajlabIBlQF/UGm3Ypl8AIaMjHRO4V/cHsj+HgH5tRsJ\r\n9V2mN2od7SurnM2jxliSjMnKl28hhs/7MNI2GS1ldRXEUH4tyLsTw6f+enoU\r\n9B8f9fVlavd9rI0wUZgG8tzcIo+3gxJEgr8iqlNiAATVyCM77zxLz0wvEQAV\r\n+Qet2lJUwRglkykFNYvyRNz91PXB3g2/VK070WYr+MXkZc+RZU8svBiPAxb3\r\njg/Y+8wzTg+0mj86IRIKQ+W44np9u5KquG0gT9fh85Wew7g/ih5J9HeB9mfn\r\noFHgNJEepFUMx4aXkLdRIqMSZ1RkN8c+TaCQxqWV5Iv1ipa25bYHcbC5D3kW\r\nbJPV3Gk33YT7xW7sNZtNazo/wHnwFAOhtz1YNpBcy5LchBASkACRZ4dJBOhL\r\nb51j2AwQQxIOmAUrtfGy7cn9ja9z9l06wEdNkYxwsvtU5zFQxXiKHVqGkAAd\r\nUf5E5uFqpPazxKdMErUcoBVLPzyOmxkVKnL2PdaeGYuAP4Yws4tpTX7pPhgm\r\nEHf3cXYf90foTFpcPi4wNPQMiN1J6Iml35w=\r\n=l3tP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"1e4b3dfcb53dc7f68a9dd7594c9d83c419a59f65","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.5-feature-1e4b3d-lemo5ncz_1677493374126_0.7931071174510025","host":"s3://npm-registry-packages"}},"3.2.5-feature-996d2d-lemqcvvi":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.5-feature-996d2d-lemqcvvi","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.5-feature-996d2d-lemqcvvi","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"be2f5a792c0efcad257eceb64c00dc6f1b2d099e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.5-feature-996d2d-lemqcvvi.tgz","fileCount":1065,"integrity":"sha512-mjjzO/GVsvSKK4+KkPSaVA1RuxWq4JM7VaRxIHaMGWduqeKjuW4Ttgw11EhIADvcpCtD9qCtYHNdmIvx9dk4zw==","signatures":[{"sig":"MEUCIFfrNvdhOPT/eCenr4JZlW6DD6E6r02KTHY98v5zOy6zAiEAhUDufrG9mRwVBwCJ+3M9XmLuT6/m8wRWZivCnCP17cU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/JLGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqiuA//eABmAN1pH13VGq0Oo0EBWvGzSG3V6RNa3andMVngA/jSe6A2\r\nq3fu326cOxJhvWw85srY3JckJbrsZpzqiHQ3ru3L51lLuZyJzIx9856kZ8qv\r\nexu76Er1Um1A9mP5YQO1l20SY7oVjmm2jHLV4439xHk7Zj2o6qEy/Nhhti1D\r\n65db+dUYvBw0iuWuxKHErAZrARvMEeFzrpINS7SAzLgAF7nr9yvw29HQU5h0\r\ntuu/ei+Pqcr0L73hwyWOml3NKOVq6ZIT3JqpYW3wQiGpu9yYFCUkm+nqwfgK\r\nLpb37BkKno56/enNRG27gK8S9G0Brijf6oEKIUg11RUoCXbwA6cVR6pjmXeb\r\nHEqY4b1gg7zJcJN7Tps8vF3fWiF8Qb8JfnRJDJKo7M9QxUjalmNBS0GZVZwk\r\nK7BNJ5KvuvQrqIvr2s5OogEfiHvS8l8KobpVnnDhZet2EtyUWc+GtSi9w6l4\r\nacSeXIdeUW5nRxTgyDF9xPnG70umHZudryNrV1kfxM8JhnScO2HNiRx1IMMS\r\n49kI5ijKBVN3MH+wbSsga8tWPAHKLmIuOZBM09TR1tU4JD0ulhV8XhO+tFtO\r\nPNuOMXbpwq/VtyeLi7MHIBgzDOe7JvNLd4eyiSCt4QS1sMbpk1NHpPQL3UOp\r\nybNFOo1WR9Kc1eFiSSo9vj7eZ2SDBRRRjIA=\r\n=TYcS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"996d2daa68dfb41471d889eb83ed45c3e7d3114d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.5-feature-996d2d-lemqcvvi_1677497029789_0.9179858390241933","host":"s3://npm-registry-packages"}},"3.2.5-feature-df1ebf-lemr221g":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.5-feature-df1ebf-lemr221g","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.5-feature-df1ebf-lemr221g","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"131828c97265745b7d00a9f50c964fd83780bdd4","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.5-feature-df1ebf-lemr221g.tgz","fileCount":1065,"integrity":"sha512-h5hNFOnRUsJi+z7KwugoutgdEePLFENNNuK7S2Ku4ebGBa030PNKfKQYRmP2iIU21sJ+ISP9Qw165FcBRLWnAA==","signatures":[{"sig":"MEQCICNj6xA5BV2jIybYtqTwW5UAQYYgnBvzfNlONvOJVsbqAiAktN0rD/CLSY0A0G2PdEA4WOvVPvTSKgCYeaHzDB2LtA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/JdTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3dg/5ABEq6kl8D92Zni73N8PsbVpt2Pb/ye8Dy40eIdE34FLj347n\r\nrybaw0p5WadHMDIOmqMp55z5TyogTqk2H5BHg8jUBNGfkL9KHDlYdHUxfxkB\r\nO1NoInPlYXBAieyidrc7MHZaAmGbbxaframiW05hCcjMSI8G9ZDtL/Euqk/F\r\n1xn+/a9e1Cj1cE5bUsp1izN5PmLhJ+fL4xAlx01ASwCwJd4yavLRR4hOXE6f\r\ncFn/fLShuCgmcgvklf9k6EZXG4KI1SZZxpQyNuSVhGQPkyM08lLbqPkc9SgL\r\nr5SVAXBLJdxR5EKSBNks5qw3/9oG0LdfaHcQcXdQR1Li9pkCOiy8XuTwwyTY\r\nL8CD5YHdgW9+XQ1qRhX6CnFeOJ8iaLUynmzCGbR+wQGOFD5UdUMbWOEbAGun\r\nbY+ws1daMLI8AeTGTnKNPOOe/chpujH/PbfFpRs8Q50pmE5uzoMIQxpew4fA\r\nv9QI1ExUnzQQl2GgOEs5cu6DCMDcaFrNGPbI+vvL6HFGSNdFaQL6C+zi9J4z\r\n0q5D2oBWBeTjYUjItvyv5SrW8vdOiI12TNvMj7Nelet9j4VTPcCShVUdAPjy\r\n6o75O2aYi5jRRTBqWIwD1lTiMZIR1fJN2SX5Sdzs9s9EUaTeh0oi3zw2m3ZV\r\nnHBwacZ1ispXMguXF8WEATsIAjgp80ur3cM=\r\n=1Oaj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"df1ebf1e9d3720bea0a67e563a973c5fe88e4a21","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.5-feature-df1ebf-lemr221g_1677498195554_0.047115992893733694","host":"s3://npm-registry-packages"}},"3.2.5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"06649970c6f2170f048236fe52cb516e21effa15","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.5.tgz","fileCount":1065,"integrity":"sha512-PtkCqjeUTAgGUpBdXw5zCwQ425CVq/ihPnyqWGCl/Ts1gH7JeughBgGLvWL/RgerkPLL3rRodzrJD/dTNTkpCQ==","signatures":[{"sig":"MEUCICKrYz+aLCmjzI9DWv1tX0PNGCQV2x58Y6MF5naOIj6PAiEA6yT8uNSpLnjV2wBKLj7eKWzrLXxEDcb3y6znjUhXOyE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/xwIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFHA/+NY9MltPYl9oZq2oCdSnjQ5AVPdOsqR31F808dkWbMNBz8/v0\r\ndeetNq31b3pDttNJz2XVU/aqVuouIwEoCC6cE3Cb8CY72cJ3FsuXyvcguWRs\r\nVFWPdJbjUlFVXkpjiwJ+RMGIza5YdtC8as5R6ITYwcvC7va1jMwRYU1uSGUX\r\n9ZGAxEQnOOt7Wz8+lhcq/vy5fmdDWGZz9OR6XwrT5oy6idMgmLUtnxoN3+DN\r\n/xf2yfYxFLpyEHwDlmh7HHbl99rRPZ8Lio91KpCzrla746X9zob7wsMHKQ/a\r\nXuH1QR5jvozIVUEDrVnsjsEOEVv0pfZuQ+IepWb/OH73QwX/3qHRF66bC6bo\r\nOZbRJc43+JyP4MF+1ECWD0etSWLd8PMBqBCVVVH5azfk8DDIO9/6k5rC/iHD\r\nGw8tWgGD6idqMxSuujQLyF8EhDli0GtVJyTBmII2RaRTkbfZEAnFyy8WVK6a\r\nSrC9rrKAMi/7IcKXt+LGnu3iT3RXhNIRwsaHUtFi471LM9Fd9BuXSR2y4Rrk\r\ntYNgCY3ReJws3aM/8owsNcWZarkPVGW+Ax1IJUKaYwresDhFednovsSJuOM+\r\nCbZeCJJWsTr4NDpBy30jQ0TsS/QfmLFVIvVOPPWWktAMmbQsuKVOs5+xFfRl\r\nupxbGDnDEkJkewzSYSBOxeQv54hWZgGqqjQ=\r\n=BUcA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"1eea1b45633ca153c8e266603ee268caf86079ac","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.5_1677663240384_0.07037337272131006","host":"s3://npm-registry-packages"}},"3.3.0-develop-39e2b5-lephfjqv":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-39e2b5-lephfjqv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-39e2b5-lephfjqv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9844413c246a2f590ae09384a77a8b716c319677","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-39e2b5-lephfjqv.tgz","fileCount":1065,"integrity":"sha512-geeUeBP48I1xJnGI4a4R77K2AX/ZwHErtxErY054yP3H5iVZPtilr0xGJc596DjvrVI2poO8YLcIj3AzNcAIVg==","signatures":[{"sig":"MEQCIDe85XrDJNRjUgPtS8sKxg3sx++4Nl2ejCdlSHOFwPjOAiBDOVW1LVuR3TrojZBWtLYF08gj+SKPDxp/2L8h9+Wrsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/xzJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4Aw//ZNYXG65S/Wbn7DoQKe6SrOsjhjWAVkZOmhOh3bgGnAmusSSO\r\nOrGxQcvCycm3nrLaotuZZK1RYcmvLce3vujv1hXJuYaGsCLYcpDI/uX8RNkj\r\nrbjgSgDs0CzS2RQR1GymCbBdfyBksg27HzyjkzdUzQfAcBh7hpnwBOgbnSy1\r\nJoleoOn28CDtGQD38UuM+UcSJluZ3COWip83fPUmSybrIV2l+vaMvn7agtI0\r\nqLzIZ/5dG37ebu1CkcncXmYA+lEaDSHstm9ggq9y3FvgGTRY9w2W0Ekoh9eT\r\nKN00yIMKQUUkXPDLDIySsRpwlkA0Bs5MOq12qurIc8zimwBUASFPXjFFGPZ5\r\nlqZc2OzkS2hsRMv0KlFK2On85VFvToAlZE05+hLUf35Tg0BYhgTqJCtSH8re\r\nPRxqqs09S9EyxoRE9WqXzisoiol3vz74LpzoHWej56OyEneBVmFAK/yr3z94\r\nw1x4QfNt+9KYKQntKN6opaDv6Wo4LsJlyZlM8XVPcRxt3YBWb9xTUba9lfQf\r\n9Ndtex4TeZqDbO8Dxoc9fQn5JI+8Q+OvEpMfwcxw4uGzGymcThsqIUMxLCEb\r\n50d0coQ240bCFIB/V+Uk9GJeqyTuTuwEbqIMoz5pXFPAXrheeIHBI9X9eCk4\r\niDqdpXAMhuXIWLgipPx2L5HGziQyWcGkiOQ=\r\n=kiRU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"39e2b5dc8787060637b79c9262a9da8859fcc8e4","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-39e2b5-lephfjqv_1677663433061_0.608426321521998","host":"s3://npm-registry-packages"}},"3.3.0-alpha.7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e9b3e340c3d5a81423c2cfb902a4817ba9e84662","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.7.tgz","fileCount":1065,"integrity":"sha512-2+B/cLdbzepPO63pCJ/DtkaeBoONo37v9uX+FfGHgWNTzFMkek6oIuajVkqVxoHPVZ3TdCKE0oZJgbXqN/wrwA==","signatures":[{"sig":"MEQCIBrCSZloYToAWmsfNr4FWUS++3pv4mk5kI9mcTA/xiWcAiAWu/OyKuiGfxOsAJd68w1bQURCacNATkCS97sT1bmI6w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/x39ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMZQ/8DP4O6FrlwIQlIsXyqigv1MVfYCBVqv/eiocsqeivA2AEUeie\r\ne1EwbXP1oDgvLtr1ENzxOeP+WNte2VKMQQXmO74jqduXU4gT8jZigi9UZRHJ\r\nYaOzuAavl+I9xT+e7kkFTLUOkI4TuO3ohyLCTwk1UXJ52ug1Cq6hvVs0TXt+\r\nhuVKPXLOJkL4wxRLZ2geh+Umb6yv6BX3KffM8oAPrFM9IwU034l1MLsdWOwj\r\n9ntMq/K7esyzYWosS8QG3yAOCQdBMiaMk8Os8cH7u/y0NFQsbwvNDP2tedUK\r\nOaT7VaZpWsmRmxsVWzMKiiXPzokl63A2N/YN+oBJzhpQO1y2zC29OcVmNmAF\r\nSxlSV+Evj/y1L5CmBW+Wa29NogNUdrO8PSKNSfOHX/7Q+ip8jx7i1gFs3hEr\r\nEjskIn2buoDsomkkXnS1IW/q/lORVWrChe1+9cIwdL+HwijuDo6/aJl+7BYK\r\nGIel6BD7dJjCgD2Amu4J7xiWEbLNLQidCrrWIFR8IcV7lNTaVkieLiYv9zVx\r\nZLIV0ARJMsA8F8QLait14QYHaICct/PD18wxLN7mwfL599lJDDAuNZj7M8OF\r\nlMMyzmblx5xaXE3WuM0B0gpYNYoU7UubmxCRM0gAzQojP2HX/ZNNa7FikLFS\r\n68W0bJPlP5CqGmJ3mCKJviOMcDCfHCNSBY8=\r\n=6tCL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"ed81cc7942780404daede723b8a9ae5206873122","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.7_1677663740871_0.11345075818502282","host":"s3://npm-registry-packages"}},"3.3.0-develop-0f076a-lephql86":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-0f076a-lephql86","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-0f076a-lephql86","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9ec4d9056e1fc9fcfd7d153d2a986f5ebea00387","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-0f076a-lephql86.tgz","fileCount":1065,"integrity":"sha512-m9Z+NidjHD5iCk9oNiNw4DI8p4VAORvAbPzkBPp9bSsK24ZweS/LPH2TMd6+kK5mLyZKewsHRL26UeyszB2Emg==","signatures":[{"sig":"MEUCIAyIe4fzuPhANcS9ZacHKiEjWO/5lThVd126I6IXBnJzAiEAwU55qBSALXJSvDOgyv97MEsxNw8ovSrfupi+mO2TdRM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/x7AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGlQ//WQnbokKtVqcEDlkDwusni0DXaWHr03WfpE3SO04VkgF9YH1j\r\n+Oexw059lMi+OVAtx3wHCAnVxSYfstcATFYQ39oGZlXLo3djdYjwd11y0nQ+\r\nSC+MyZUBuIQtfh1wXC3x9R59gJjt/UvaVlqVctRSxi7oW3tMeELpXQgVHR7I\r\njIYjn9XF0a4nqIMm/tNypevht86/8jU6f+ScX+QOQlDWda/r/TP37k/MPaKH\r\nuhkq0t0jCylElXYlk1GMzYuLVrOBt/cEz0o3tILz9UPdI6bCqAuRHIDgTUZu\r\nIAaxXXfMu6iijI/K8zOBqNUvoKYKNe6fj7IHwGjxA9LuQ+QAIwrqALb1qWmZ\r\n/yGSy7zi8X19yVe6R2b92or3wsJcbOupJbdCAdcS1c2JSk4Q1L8uYNFSSYXV\r\nJWdeO8PNDKv6kSWtkUZRZIbPxub9Mu9mLz7OQlWBMrtOP3bzW5LHvTms6wEN\r\n2OzWfjC9QpqucZuBpLkfKtUfZO9gL8vmSaPZdWlyOhN0RrI97O/3vOSBNrqn\r\nhzxWedKlrJ6LEb7dewqjhF9rxKWnCHFOxB4Ql68DeWyMRC3JE+jlrvsXzgT7\r\n4Ub/4CaDMsujPBLLoDE47kR3S8MeRw3R8KvluJHudmGvJF7owxkvMFYAe/ux\r\nELw2GWQFwXG5jUEAZSi+gUZHO6dq38BuLVs=\r\n=RQb2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"0f076a0509e4faeb9715758b448201961864fe5d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-0f076a-lephql86_1677663936279_0.5286628032328213","host":"s3://npm-registry-packages"}},"3.3.0-feature-4bbaea-lezpztxs":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-4bbaea-lezpztxs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-4bbaea-lezpztxs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e63bc320c7b1e0e2bc3e8a418572bdec14dcc21c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-4bbaea-lezpztxs.tgz","fileCount":1065,"integrity":"sha512-XWuq1q3dlZIjuuOuBpY3FHZBgiDmv15Hw9OTTC/CYvazKgr0GS6XFlS8ELhuF7GeDIBZo5H0lLVDvwCs8vJZ1g==","signatures":[{"sig":"MEUCIApyJG1fuo2ri1U3cP7FnEjjYXcEo73JR99NYaXiE+mLAiEAjEzEIOR25xEtFzuZR3lpa/YxH9/RtLqbW2w/wn6KN/s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCI7kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgGg/9HTlELu+knQc7eERaif7PytTmipxQfdzfxY/R1nlBIllDz12g\r\ncdTYYgQDyhqQZFGgyho9mgFH1Y0pFmJXKJyD6Karchw3h8xx6CsF3tCcvcBf\r\n4ukh2137wEiQNjRCdodTU6+7wuP9IdHSB41XjcZLl71qc7AvCyGAUMyKijHz\r\nanK2QiHIHoms8IBZmzMsWZPS9JNTM85V5JDiVxiRSLPkZ49g8K+d6lCaLnSA\r\nwQ1SeNbNOo9jOSvGSaV5t0af6A8jq1+d9PGW29kK9mbTiF7rZ3UDaLtPVg5s\r\nIc2nxi2BCZGtMgkW9cx7Jr4O5Fq1riJDELiTk3TWuVAdsTRhSo7TLvPulFoA\r\nnxhEV/TtJfAi6pqggSjatD95eJQkCNulBG5KRXD/ImrG5Ajcu8BYTqAdEBsc\r\naL6Z9M2H2XzPKx4E3pFPeHewrY1Jxn0wdeyr7VWKHIEcfN51dwYBcfwlvT0E\r\nebogM1BkQyYCpHSh411YKecTgFoPzZNdla/K61zKLLpbmbzjwuTvIQnywVjK\r\ni8+f2FeOXeL7iEIj5jDLHxtMJdLuAPMQmKvridcuncljbSl9oJxjuI1/v0dB\r\naMIScIyKG+5E+PPX7Wz/LR6DQlXsuw17/z6sLhqbF1c8ctC2HQYQTgwk+zxS\r\nyvPpZyK7GfIl4LJENXRCRQ6lSTRhv4YUv94=\r\n=oD0p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"4bbaea475357a565c2ec8030cdebaad60c0f2c3a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-4bbaea-lezpztxs_1678282468632_0.0493155132034484","host":"s3://npm-registry-packages"}},"3.3.0-feature-695a0c-lezq00gf":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-695a0c-lezq00gf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-695a0c-lezq00gf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"41a93d0e09ab1817d88426a98012d19d9aa0776e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-695a0c-lezq00gf.tgz","fileCount":1070,"integrity":"sha512-EiWLXgdNFPRkoZsFmG7/amJ6nDxunaeSl7OSA07FBh1jrVNpf8q8fCgXuVsZ4Or4K95S8ELKOn+P5vJLa9pI7g==","signatures":[{"sig":"MEUCIACVcfFvGiYnCNxbMSXcYeTwJDklAwlacsy8YnBOQq2TAiEAmPDQGjqjrGoqwYgsvoG5sduyJLiTrh2pwJNgRkGkzFQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCI78ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmonKxAAn0KAyV8JX9/qomzmL8Pwlgm0eIJNluyfAz6RbjhLumnL9fCU\r\nrGrif1aZRyXK4M7oGbFErX0vzXGrj5xLzT2Iu3w8EZpG9zlB58aTYMEPbK/T\r\n/Y7VbxdmHwUZnUZRRPD72g9UprdutMdFBAw6L5VCueRyXMBWe1qcjOPTHOU4\r\nNCFWoS8XYo/ztDBxAX9Tq6ibodDTr0N/Qol/aAXaxsUkbRv2mnCS1mBTvYBn\r\n0AKFbmD2XS1U+uWh/oCQbGn5p9tOhQ8JCZm2aCSlGUxEdFVMaGun/Q4jVrGA\r\nYfRnHbfJuYCPRzuIG2wJnlQNvFX2iW5F4WhovRL06pPkGlNTMIBYxu/pIQXh\r\ngS/bdeSNcd5SSG2oun8Cs4ufaVkFWqXB6RjC4ua2izrMRVzCqJehH8fBpp5r\r\nVnuZ+Br/YGcFidRo5CVUieKfvkpkmzCDaLXFVAXhU2bKQOh88ZaXmzuiH+cd\r\nn4AE0C8nJSjjpYb/kH7kuwtJ9L4S8aXypaC6vEiNDnqqwdyWIDRV/VqXOtsZ\r\nO6xXzCtB5qrOq/dxkmQpXwLTItHz4E8vuM55fKyRAHYH8FpUuKeLK2BuI26L\r\nMmx7in2fYlhWZBa3M4mgasIM9isWtjLPURM7StNG+oMBYsYVRgNLY2XhPXBv\r\nTyBjHvHpRfgmAA0aaF1H9aeabpJJ5podejw=\r\n=VVwE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"695a0c1e384ce6406ae80b8436aef91e16dd0500","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-695a0c-lezq00gf_1678282492626_0.6306759279412724","host":"s3://npm-registry-packages"}},"3.3.0-feature-374d40-lezq5y62":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-374d40-lezq5y62","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-374d40-lezq5y62","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1cd993bb4169c60e3fdf4cc1c34a79d1439a8da9","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-374d40-lezq5y62.tgz","fileCount":1065,"integrity":"sha512-DLI2zlr95A2QQto9nHv8C9yeSidESdaSaHC/dzPFPKgI8+PGsztWt6Cc9s00lxV+MSaxFiLxWcb7aHdU1gfMXA==","signatures":[{"sig":"MEUCICaBeorLPSLubD1/+ipNv6U/jgbNecmCFJFfINhtKu/XAiEAjD8YOdpIGILH35wVD9NXDSzuLfSdNgv2NZRB/cK2s8Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCJAEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLGQ//W4Fq3zSZflqvoZK55aYQGPrpqZnXZeEeZ/qyCl2jvftT2YXE\r\nLpXAPm8v/lr6ud8YGr9Gt9hdGh16ZNmNUhULITNG4WvnuQij/qGUFpduNu+r\r\nyWzHudoFCVLUFk3oBhdzO0W8XtBgyhkngckYcT7oXfUPYbk0yYaVwo4OnuGW\r\nJTpCcVaUasOJ1vLECXvp4fC8OyEi+G38ICq7td7EITRUd/xk2ij3H8yTcgWe\r\nQKYtRXeoKO3cSFwD6xM/5l0crXowDv1cJ0s/Gw4+aWz/JOOCCIs/jUqR1RgS\r\nAOSHwXFQun9jfhs4an/Ibre6XjUPRwgNDYZ8mQL6Dh5B5NrvZ3+XBKcMOEvk\r\nrTvyyugTA6laAFsAZ+3KRga4DC9i+KJCsgJgIcP96ZWa6ZBY/hi0iEEXrh0y\r\nZYUQDOH7woGoS0IWiTmuJ6XvHA/pAsmUJ0s/YrHnBmuMckr0oWsjoD0woaHe\r\nj7E/CubGE8ibrUa16m+3IMZ1XWhs5BPFsmuTtCOR1usDFaQbav/rrhnKas5f\r\n2Mt5xInqbb2Lp1wrCIxfk4OgIZg4vF0+N1rerbQ6Gs7KRQ6ecYZgOw/j5f6o\r\nMJhx8C7N0lj6ENawnoIOdO1D+awc0DW+tyFXp3gswDuUDNLOggeS2r0/4lNq\r\nvigW4onqUS6cHJwFvZHJs70CEjNfs4TkaLA=\r\n=gBk+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"374d40d9ad919f7c01dd6614cb8b06cf188df732","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-374d40-lezq5y62_1678282756467_0.3844383085426122","host":"s3://npm-registry-packages"}},"3.3.0-feature-7ac499-lezqe9xq":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-7ac499-lezqe9xq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-7ac499-lezqe9xq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"57de39dac1e8b10697765c620673fe537df26aac","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-7ac499-lezqe9xq.tgz","fileCount":1065,"integrity":"sha512-sLVpwtUD9G5AncARQHYz0rhBdjjTFw28oi64MUSBuZSW0XIpqTyXxQrtYajrgcbcrwRSSOv1Dv3uzNUCE6J5eQ==","signatures":[{"sig":"MEUCIESx2LhV5uYD2y/PSnZpnZacuEHS8HbQnHt7uZ9X61iFAiEA+aYULx7uD2RaCpv0ukFKfEegDXB2uIE9vGKYZ9zwhZo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCJGZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+DA/9HACiXSHQFkEURX9UA6NdejQv5w9Gm+IrTTk/VUoOyrH0LySd\r\n6FqeLbY0bl0IYyXjny2tfqbIZJ7pZAWhuRFhN1rfU8O3apeKHGyJGNO0cDCc\r\nINrog+zu5QwyhEME1Bu4CtN3TzB2rwhVEkA0Bciky/fBcYcv00733pxuar3d\r\nic1wI6ThGjWlLiQ4TAG6CbzC+GhWcmrv8LWaFutMG9ECJFYNKYNYTJkIE4uv\r\nD/OVEMVTiWAeBfr5I4XDt+joSyw+m9lwRiFmM/aNXKxEDpLbmGjIa5NJBQwp\r\nyWcwCgx7qeKufoEzYLDA5r5djvg0TD0K7PXD9YIe20ZfbnVSZJCYukmF3wpM\r\nJMBjusXt1bv2zQIQpTsdMoRh1vugsNvMpep2Q1Mkf6T7w7gHKcwfTpGVwur+\r\ngw0frgpRwZam8klPvZRf7LppnsCEOUSerHbA8PlAB8KuPL/nNE230lSxF4u/\r\ntKRCE3ungyKBaeOuJ1R2i7TNGBwfxj5YlwluGwot5/WThpRIvxkw+AXvwocw\r\nhoXVaa2xDbJekIcZN9KaI5W6B56vVoYJwGyIp0CkrWywgpN8osb7TSzisw8c\r\nTw4hvCpTvoDDn5yfgXILfnbrmPhngzGn3hI0jD7pChMEpXEKmwTWlTgMBzPL\r\nbcVnTkkxjA8Y3guStUmegxf7atus9I5Qh90=\r\n=NF0J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"7ac4996c78b62a722beb0b03491b42cac246057c","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-7ac499-lezqe9xq_1678283160836_0.12592546385643066","host":"s3://npm-registry-packages"}},"3.3.0-feature-0cd937-lezqfid4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-0cd937-lezqfid4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-0cd937-lezqfid4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4e8cf2e3deec2d6cc6c1f27bd380b8bb8fa8119b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-0cd937-lezqfid4.tgz","fileCount":1065,"integrity":"sha512-BEqymc+nOO8WDVNLzC/fxGvemfm9KntcxRYojOuzJWfqhT1X043npHcjyK+uQXdmpUOMCKZzQ5xyT5uOwue5lA==","signatures":[{"sig":"MEUCIQCBoeGdEBjx1xVRkJzU2pBHUpPI4myxt/qBAgKxPzVOZgIgbUGeZWLuMNhF48NB7b/MoesIohf+UwE/kH+eQCtkfwM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCJG+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6MQ//RNKCdrT8TbT2buSXVtmn5qDkgL4FmX4Plr2xA2vxtO0uUL7L\r\nrnRqU8vRLv38uraaPnJk3nmRwX0+keJ10VOJH7plbwxHE7glWLuyxZDyHy3H\r\ns3ifLvVf0mwykNA+EulQpuVSQwWO6f1PjzdPLfkpiUnh1LvFtieq0aYwKS2i\r\nuP+QqauJEuQMj42nVETeFWp8ubqTfqZwveb9Aewg0zfKa53c2mVqNVpg7e/X\r\nYcHSMK4Zy1bGoUpwaDa0kxFS/3d+ITCpVWhfEqUKQtuPeA6e5iErEcGSM4+k\r\nR6pXjKxICYDzB9iIrLsWYZ6RKXuMp+zFdbIxLj2c6JzytKhfz0gE6cgRnC0P\r\npZGCuSJ7FLLZ8LlFKpHIb2CsJH7SekSVNii5Pi8AKUPy1ZNsyOQyDoPqTp7T\r\n/tygwPRIMCAJbDmhMvbsAVyfWH2Nc8DWaUMil9SrSv4RgHCfHuv3LfYgnZKd\r\n3UegX66Ru4i2lQixMRvyHbCwbaKim0IxS1dRQUq/ueANcexofnmo22RErpVf\r\ndJgp7931tm982wBfYvDKrtUBc0SSI7Wg4oihsp+aH1Q+/eXT6JE1EqAI9CwJ\r\nqmmOVp/WRbBBkXwgZWAAp2Y9I/lEQuV/F7OW9rg7yJYE9ztoAJAEP0qFZDSA\r\nKu21xX+OVkz8bTLnD4n/f2xzfnf2Ay9HHwc=\r\n=vVoM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"0cd9379c7db6854bcbc38e31a2d8f029e64ce055","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-0cd937-lezqfid4_1678283198266_0.3516852012849738","host":"s3://npm-registry-packages"}},"3.3.0-develop-20f2e9-lf0vs0g2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-20f2e9-lf0vs0g2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-20f2e9-lf0vs0g2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1adf4ff60207c5ab88db81b4d30301f5b7adb2fd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-20f2e9-lf0vs0g2.tgz","fileCount":1065,"integrity":"sha512-0wW+38ts0EkKSFTPQHAob+tDl12Sul5CSvcNFHdJZgg9ug3XBXKUQZlIS7ZkXY0N0V2tnOTTOF11UlzKdnInng==","signatures":[{"sig":"MEYCIQDYr4FKakV3k0qAR99wCqh5A2REBDvql4dKOQCEe9J3MAIhALnJdcPfKDgooV5nifE/4r2PVQTk7lLSZdCEUoTj0LCd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCaEKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+BA//cfOd9unkr4K26lV8JvtjLvdw0bzBzW4z0OfqhmgM3hzIKRHJ\r\nN5R9hnQ1FiuZLsD85peLw+NZY/OxFma57ZmG/K3/X2tvUL+8t27ZeF/uykkE\r\nqSetGxZY+njybKHHEdY0aPO14f4/9JPYUBtB+cNgyEBqLzSzBuvPqi6xjbo0\r\nqG8WFgrekg5DFUFXzmCLG/ZBibCH2Or7zoV3MCuaJTOduCDcl5p+W22Ycew8\r\nw65oOjzjtpLBThNIVR5fGdQZdoShHAG/zT5SBR5sxM6fnWcCFnMuYS1aTMky\r\nb1IY/hWTZyJygd2lIokMTD1dmJvDPnGhhLwlETBz4SUe+1icKPPPVT3/wiLj\r\nXuYd6RZcD9in07IdpR6wFrCUvHB0FiKHzAPgUnwDRqOnleAILFlyTmpprfTe\r\n5gMGMoQS3PlTFrT0FcGOB398bqZjMfFQxVH+N366qrE+o5mHypUtEz9JGpTJ\r\n92s6SxaOhW/RWtmXukGYXynDS3Lup72bmS8qCq8ricTnZhsS/M8PWCNaWzc0\r\n6DgFgMt90/QSczdDuQaREkLuM12MVW2tA2t4f+MtvKseQkeE4vzeD8vmmyLB\r\nNx9MEIQuhKpTy7u/349ZjZyeqLIT1DUuDERgxsyBa1t0f7KPCj9jv4dSlB/l\r\nLrvgVvAQ1Gw9xBeX/yAi3obYS9XFNNDtWVw=\r\n=jdi+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"20f2e9f3a6907d7467ac34b53fc6a8a358036d12","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-20f2e9-lf0vs0g2_1678352650283_0.014336540290177613","host":"s3://npm-registry-packages"}},"3.3.0-alpha.8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5a6cb503594e010272dab70c431d2cdce0224ce7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.8.tgz","fileCount":1065,"integrity":"sha512-F5jPnkamyfx2BF4R3Z/IOuuo5TvzMCI+lbxwwblMZVlIzINn4Za9Z2JI7ZRoOCqe48I+Vpc04jrK6/LYiNY62Q==","signatures":[{"sig":"MEUCIGjAsvjWAP1Tbx1d4A7U4Gh2WAWxE/oWY2sQxEjdk7JWAiEA72z6uXIKN0Eh8tcy50VEZOsHV5HxEi/4kX129QvScRY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCbYiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrrBAAhkj7S0ewPVf34VL3r1eDWQv1t12zDMGPGKTw2H0OsiN674hA\r\nxWmWQ1GBRVw12I4p+NdljAJ5CDrSyBWohjI7ohMbYdTxPPUycphelLdqVGBe\r\nm3vXIndaRFKHYsoTnqMH67OQfbI0OVnuRXvaUCm2R2adLQJiiKncea+VP6Xa\r\nh1G+PI+q2GBl8jyupN0CtWivH9IfW8Sm2ru+043DNxZLBQb/W+Dekh5Ia71x\r\nvyb6XQzpV9c8tg+XoQc3LsD2lyEXEwI5yHFL3tHGbWZcjNttRMoaVPVycb6e\r\n9d7cdoFIiLh53qr/fxNo+WpOQbcympIJNDcT80H2QRb/btRFYFZb4owNUL0u\r\nKtE58VJv0KDlzRZSYLMNpvmqlOL/lWp5ziLKyTpdbVxJ8PIcDOOnGNlAaY69\r\nXBik+kFxtL1Nf1dC/WgDNcX8547z3bFjvwAuHYsQRNiqjVSax+Zi+oQeF5ey\r\nVie+dxGn97GNKTTuXB7N2rMPDIskSh3Fhne4wpFyO0WnN13ASF0KwhoVBid0\r\nAPhtk7Kx8shnEScfKZp6ilaxvvxfeFzxRW8+KMA8mL7wlRt8uLdE2fJx3k9p\r\nsSOFQfmwPkSyWVM9sQTLrsppnK/zE/5rcSEX4LkRoQYiayQgj7lxOazJyya4\r\nZytp2ABjNGuRJR6qe8FHrfeU88f6Ce0JDDw=\r\n=Xfd3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"57132e7952b02af9228e87e7f47984b90d02bbe2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.8_1678358050177_0.7146112940968352","host":"s3://npm-registry-packages"}},"3.3.0-develop-11245f-lf105hea":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-11245f-lf105hea","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-11245f-lf105hea","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a520ba00c07fc2cb68db60a6964a9e37f0cceeff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-11245f-lf105hea.tgz","fileCount":1065,"integrity":"sha512-q0hjZ2VW1HSWuGH4rjjjd+jaz5wYw5f6r/8Fonj2FfbCeSHcG0GIDuhmWv/zpkma1eCmVZUs0lGbpQY1IR5jtQ==","signatures":[{"sig":"MEYCIQD36VDSIce3jiCvTtb5Kd6E4Wb+HUaaN5VoFP0HRrwcaAIhAKLV8tkputd+J0leW0iwwo0rg3D9vHIjd5cvaeCyOOkH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1453386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCb24ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwwxAAo6YUCdUVW9iehh2h95psCZOk1GAgYYnd52LWJs78VUxfeYpW\r\niBeFaYuikhIzy+Zsg8hifr/4pNT+1uL9Lk8gzQ4VCv1eJLaq5Z7DjbJvsKgG\r\ni7WsTJN3qX9PJCShKmRyZwQEqdh4ceKkExq4BDOIGTZbxp1iXVCXn8RrDC+5\r\nHKW/+b97zT/EP7kQRN6QMgCxFW/ghVhwL6xiPN5UfASQUG2/ujjXCP9R1PEy\r\nxmqurBdP1IcDvwyzPPbcGV/VuepUH4TjNyJUC1gPA98m9stjQ6XcfMiOdUxw\r\nQmqjdq9LThtrIyeFCKgrruerhMd4qqIgG1Ta6IIDh68vEEiiAGxuEOY89R3O\r\nn0S3mdheWsPczFqOel81TdSIPUxALmZ7rBuEotmKvLUUMdxb/Y0ZWken/wK7\r\nWabh+Tii68JVzfLemrPhalh1eJOPBYX/Znq3B3tvgbgYaomJvyUfN58+UiU+\r\n+ImOrgj6wwSK0wf5fvRV2meV2+xcxTm5V2ZCBdO9vSm5Sb4mFwGCUsVAluCh\r\nZZHALef1Z+Mfvx5eE0pZeO3alXuH++7Mp92dub2AQgclnay6ihxQVE1qtNNQ\r\nHsUq0Wx3xwsTF29iwkzFgHrdjVwtYnvgffzRFAMdWSiOiNkVE3jWDnjP+h3L\r\nU1qUlaJ52ZOefrKbNp1K61JRqgaSnLbCzG4=\r\n=SoIM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"11245fdb3fa23873dff8b9c7cad859917132711a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-11245f-lf105hea_1678359992536_0.3244122488807277","host":"s3://npm-registry-packages"}},"3.3.0-feature-96a39a-lf6lp1mo":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-96a39a-lf6lp1mo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-96a39a-lf6lp1mo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"06495d55094383b2fd41a4a217e8d39823945206","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-96a39a-lf6lp1mo.tgz","fileCount":1070,"integrity":"sha512-9VRUcVq3LRdeJb1UifjAXY5Zr3ChVtopZajI9MTq6odF4XoRhipKG+2FWsr2kYatr1Xyw3pTesXqK+UHVYqjwg==","signatures":[{"sig":"MEUCIBhfosKByFP1WsNnNp+6PxxVa/nPopGrVsLJ7UNxEF8vAiEAl0VAX8Spi9aoNxpFI0M4PLReNWN+ed+kYLJdE/Yejq0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDugfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7lA/+K2piwoOGBi1SeGsbb1jfHpJSJdfcFMdONqvDntbuVoQQJIcd\r\nG4vGAIIe4Rc1fSmF6G+geTCGZnt20kIGEYO/7S5ScvJxlvecwxZJzaFHQQmi\r\nsKRF7YCRU1M87ivEQSKjDST7VTaWJomfmUM7BQl1sBdkQUtndbzCB9Jh2l/6\r\nwI2DeQInkYdiF4Fs3s6OXzRCWyr29wqTlGYIh3j5Fn0RLVd2wumFP8o5pd1R\r\nGeGotzs21WAfNaJIiUO/dnfMrvgOEXgC0kwbp9How2g3ytXXDN7YT+1obRti\r\nKrqNAQ2gKGBM0Rtn52kKrEHWOfjCNAF0G4qhxkCbE111nLivl6AhJ+3rxst9\r\n1bcTW631a0WIkFbVg+YH6fZv/GRk1ieo7Ubw5PFP0iSPVWX0Z+bYkF0JosKn\r\n4eDLWTX1ZcKUBtOgyQNi5X+Bn9GgUpOUSK/vkp5ogkrw1J2tQS/nvfeLzPb1\r\n8bovknBSAx187bO0QAMwub47PExjqQBU/V2a882jJ5o3GYgY7yANaFqlN1ME\r\noZ77PHCmvrT/APOwXAJCKiBXLeCMRxfmslIplHM/kkwQ8wAV9kJiB6wLUUCb\r\nXoDCE5sZYz9XJCm0n+FXp4ge56Z1jSOfdQbvgV3cBRJ2AO4sk62C4SdhpBSF\r\nKg0Umtnr/1lshhbbGXJksH5OCwxxGCHUyIE=\r\n=RUVf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"96a39abb921e296efecc3909f07e220d13852921","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-96a39a-lf6lp1mo_1678698527222_0.6274832423754584","host":"s3://npm-registry-packages"}},"3.2.6-hotfix-b55ea8-lf8icsmb":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.6-hotfix-b55ea8-lf8icsmb","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.6-hotfix-b55ea8-lf8icsmb","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2cbc524c9f15ce0fabdd5e6cf6dcd350d0dbaa9c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.6-hotfix-b55ea8-lf8icsmb.tgz","fileCount":1070,"integrity":"sha512-xLTGelpbrLKf2NX1Wro/dpAxrNpIzvE0GMX2+KNoYCPZKNM+aB1PoOgzvQrQHQM/l/JK9JIjcZM0bpIi6SZcBA==","signatures":[{"sig":"MEUCIQCA/d3CxYLqyP7n78iwhcc++IzTZhMUz4fst/aAGvXzUgIgNBVk4wggUVSLdAULaJOX1NS+BNKde8LnwWXz1/K/LlU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEKqJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsVg//RLk0KKw15bIEiigoHNSoKU9brUZTsc4HSWdeWdF6vraX6bX6\r\nH92GMH6XH5jGlQ+pI5jg4Aywwjrf2eJddAUcqKQqi5l9hLhLkPx4q3OCaaQg\r\nSqKCl7QkAPmfqPe5garm5P2NrZjaKcVlIhBNHcePIHNhUBwJ3yRV5+QXbMpX\r\neR5uTzypUHaXKyOMzzW+NTsq0KqpcD0/VdhsQLPld0tdwlzePHPclctOradR\r\nEe0MGk9odtKaYBnqvhzMrzpKg7mD7s0D+VWBZCXs3yaE4XUuW36e5/BGcTjP\r\ngTWzTkBIk4GLMVdQdgNTpoh8ZCd8ZMAWu8p8RmlcMF0UW+CeGrrR0nAQAL6K\r\nO/vl9Ig0BrxlPMeBtncsk8yor1qCgEdu0rXDIxnZurpfp6fC5SrdcqX9go99\r\nANwEkBQ/L01Gp4I1HYwlaZYwvzYmrvO+znutt1EbXYkVSE6XF+XzSH4iAwyA\r\nJ69dWDPXotJadEbmDjHkPcTeeNUNweos1gJ3XB3nIvm6Wt+ayNoYg9984iJO\r\nrdhqpunTlQpiYXmRT6PzkieYVixsKaFwT/JPG2jz734Ap/fMao55KGsbvKG7\r\nkaR7+R+hauFxxRZLJi8D4IorlfeXxAXhTmJ7ttK7rVDPzo2NTerzk5PoBiYS\r\nvX0iM57t+SGr3go9PQbO525jjbjXfnOtQn4=\r\n=q5Zm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"b55ea8311a68d591db461eba471b0d6984669b0d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.6-hotfix-b55ea8-lf8icsmb_1678813832848_0.7924204752901378","host":"s3://npm-registry-packages"}},"3.2.6-hotfix-ac0e13-lf9fbrb5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.6-hotfix-ac0e13-lf9fbrb5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.6-hotfix-ac0e13-lf9fbrb5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a40f1e2082bfce4e0b002ea59cc8b30cf450868c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.6-hotfix-ac0e13-lf9fbrb5.tgz","fileCount":1070,"integrity":"sha512-bm9FWyPN0g848MKwAe8BPovmIN3545dRWH1rRJfOXDhjjFfXRjcCk3uzY1ifVbRD9qjt6avwNz5tCBu60hsp5Q==","signatures":[{"sig":"MEUCIQDiGXN/9laVF0F2U5yRwb6JNxjAKzE1cPo4ijczQ3bsuQIgD+KAtNY2vvEZWBveLlcBl/S/md3QgQISUHsuhsfS2+I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEYLaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBiA/7BuKBlQ7Xc2tPvQjMMUpTE0wNjoyFL6YYCEPLFlTHePUqZnH8\r\nX8nBT+nuM80WphSe1OPtWbru2jNGeKJXNZvDkMDtIHi7/6QppJd6enz+loyt\r\nc8KoznEFUmxspugosga5TsoFljm5St8Bh9k+bgSqxfqZquh+1xbXszJFjkVf\r\nGwSALZPbCbxT5Uf+4RQ1ag504N9vtwdrpbNuRXEzSZduEPymHoCPYFLgXiaE\r\n0Ux+3Dj8ONQbIGxCLN3JQqv9XYiOTIgkgxSFITY6EUeb0PeHwYjZJcKxHL+z\r\nTddko4emWZB45H21JCXObSb2YZ2WCo8t+m518/TFmVzB6jwkxZw3VZrYDia5\r\ng+Zjc76DrlULVA857NLi/3PsgL0S6SsYM6ZHoSLLu8XH1B5Gd/SL7rgMl3Ph\r\nYNbseAdahmH5yHrCBc63f6o5YtVgVkoFoFXQkErZUD8jDk2lFTjnKgcr/Ydg\r\nHSN55I8mtwXfLVzlufuwH4S4N7wHLElpqpnv2PTeJuFcVwY8O0UiurIoDcdA\r\n6Pzg9tGij9a1YB+XrbklXA3n44QcwYFKIn7OyvPZ0xYxiWePmNA3OhicIcFF\r\nheipSfkjOiwHMz5Hv1R3kyL8VamZ7mgYtzfGodxRWotEdO902wYWMwZI+8EG\r\n2umKO5C3GCWUXGhhE1mFytzZBWClao5NNFE=\r\n=yqmR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\nTODO: Weitere Funktionalitäten beschreiben\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/Engine)\n- [Logger der Engine](https://github.com/5minds/loggerhythm)\n","gitHead":"ac0e13568edffd508e34dba54c5a41f2722deeb2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.6-hotfix-ac0e13-lf9fbrb5_1678869210033_0.11344852015812901","host":"s3://npm-registry-packages"}},"3.2.6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.2.6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.2.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"626e22d9961a22d1df7b2678b0ea7d849d67cd1f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.2.6.tgz","fileCount":1070,"integrity":"sha512-Qilc6/oW2De1LTxWQVh9o0rwfTtLfk9DucwBP0OeeNo8ygrsbmDZdbc8AvKEhi2m8/Q569hP4DvSwmwI+Cuh3Q==","signatures":[{"sig":"MEUCIQDUNzxJq5fDW+49EeIhPmqc1P64gmmvZVFH5DWe/o1vFQIgFfMgpspdxBVQXzA+N0PbjshKwYntmESX5fPdXiwb8Rg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEuNaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0DxAAgDdBPyLA/7wi9RIaXNbnnfJbG78CVybUvly4SMdbNNk8MdQZ\r\nT79kecXLM2G3KAXCW7sV2f1sTLLZUN0CeCr8U1DtAwFKB2ajWsM2Sx185fvT\r\nRm1vQ7BMV0/bmzLvemdx/fZ0R7FjvQgSrmUHfuvI1hlgPWQCtWRIshVQfVVD\r\nttu2nc2QuGSUYqj/bBnyOCb8zurx9DixGiAKZCcA6dhrwHoN6Q5zT7MXKiqo\r\nwKPmbrGrv7RhUIOg5w21KWjc8xsCD1OtIB7QOp+ExAKHSB4RCwStLnXYrknO\r\nUhUomq+9kwwvjtgPa8mKCKoORoTODwle9KwMKKyylhWRo7Mq/tXcQ/xDO3IE\r\nOLx7FzZLxUuhyni4qwlPvXv2JlH2UcaIGsBO4yfXYPNY1ytIKztkWxYSAwEV\r\npkEZGvimh1ioV8B7aDLoADqykNjhvWJEenswVJ47mRBvh25EvcVwyOllEiRJ\r\nb8F3th99iddc0pVolIL8nNg9jI5G+N5k0Uyx2Slzt0/RmW4tRF0j+PYJv6hm\r\nTb2xBlmLgb1pEYXWc9hIOcD1ujUwVsSvTp2Ou4BcggFkQ7FLNOqOH4lHVJlK\r\nN/MiS7BqknJIJYZDlWLOifTp2mhDbw3tBnoDHuNPkE5IX3ygC/Z4OeI8vFOR\r\nI7aD7/4ZxiM37TDSpx23BDav9/P6r/ev7rw=\r\n=/zb+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"16cd22c8a4fb8dc34162560356cdc3b37702c9a4","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.2.6_1678959449939_0.19213666601583101","host":"s3://npm-registry-packages"}},"3.3.0-alpha.9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"22f4766a634c7009455d0986428914fb0c210354","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.9.tgz","fileCount":1070,"integrity":"sha512-npxbgAS/MbwGbAwy8gCyNEJfkirCGKLxgrYpLPdNJtAClZlq0zNXg5vkFpXlu3BWhUe6IUcXVbnTqDW9snVAWA==","signatures":[{"sig":"MEQCIFDhwRiqVeaYIdt/04Rkl6hV7uTdy2V3C561+l+iWBCpAiAH7YSOb3rW7yjZ64I6jMCq4JA3QvwfQPB9o3+3MvkMaQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEuQiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTOg//Qc+FJOLNeJNHn99frcOcJk9yTNtHjkqnNYwinD5noHk0bRws\r\nS2f+iYLeKytTsVAncv0PDNmoqRWeF/tjGUvsw2DFN9NJwZtDxw1uoWm/KOtA\r\n2BgmkRmD5p0UBP0Dh0zHwue3uQRU71xj8KvaQqa7JBw8qPL7MOD2lLG2LJRH\r\njPRZXCTpbIT92/aiMjP0MI4mg6f57hMPi+VFuKTdTSMb8iq3hptPayHWIFtD\r\ng05212Yjn+p0yo0ctDK8gZWeNtyG3p2tbK44y2MYxZm8QjUkuq90VDL8BSJI\r\nyVOHOcjbaiCwITiehPwBI4GwRfR3vwnohNnLYphDugQJ+fxj8DOjH02/Y9gt\r\nXeLlpXX06FBhH+dbdGxFr0crxZnXG8uV0QirufvKciGgeSzCanrUr9BIKqgy\r\n2y2LYvxr+jcYkXJq8ps7FRocVoAP1qzUtZhusrsJmLkJMnz/YZ3DRxatOoW/\r\nVt4GJxIzG6uzWBjzwHRZIEWi7pO2w37xamC4/T/udkjMJsD2xqelAh5YHxwT\r\nwqrm9PCFnm6zkJwCsKseDOHeYZq4sl54kuzFtFpFes0hVfvfvMeKFCt7mhki\r\n/MVGod42Z6NYqs7yWM2uUIbHTUNC1d1J6m7d2gFJBJQD61HS1JTvB3uJOzlj\r\nMk3TcAwM27fUWfNaPZTV2ozl2f3k3TNhjU0=\r\n=CiOf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"48c990ec761bc1777ee968a04c079f11e43ba108","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.9_1678959649814_0.01156561614605689","host":"s3://npm-registry-packages"}},"3.3.0-develop-698a2b-lfax9oon":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-698a2b-lfax9oon","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-698a2b-lfax9oon","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0e7cb79886b44995e9d6c7345bacc868ccbc7a85","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-698a2b-lfax9oon.tgz","fileCount":1070,"integrity":"sha512-umOiuTApi60ttl92eAD4c4lYKUJR+nhWLQ/zxs6sL7fke4YbvpC3gLbHPGq8pLItRFI74UjZeiq3sKLVcl+aCg==","signatures":[{"sig":"MEQCIA4tZZx0MIl8Oth+mAv3mDQiDFRAKwVLR3YhZZS9zN8QAiA4aL84m0Vsl2cSnAx4DeS+126okYTh228seZuCnIu5Ww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEuTGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo85Q/+I8gEpg7nDDEK9+qB/MKlL2A8y1UAHpfDCMZ1KvRDOFLRHHT0\r\nGCSSkfBn7TZq6ak7DO+e1+840uLxzIWtv2zbC7h/1VGe8wkJ9ppAWv47Ps2t\r\nTsWj1KCXJCl+6yresEykS2p9p67XRX/3a/nPOzVUPsC0Er6OJ//eicbjrRKB\r\nyZyRilKf6khAnuxvuyQoXy5vtMZH3b5yENI50WSNVuqycqpp/p1SzzVnRKuS\r\n1UBDxSieqwHk2OBiBOnmaKUzC/RRSiE4xJg2D50MPB6P/Nsc5axWXqXVnKKB\r\nMzaFp9mnj8ISDhF+6pAzrd9Wf8A5dkZSksJI0GGK4v+Quq2x/2H1EseERNV4\r\nVcXhzxr6/C6d5cxhFLYrmnx/3JNsodQCdsldJf/1MM/uqs1VGTZIbu5TJAd8\r\nGl5pAIWM/7ZKS0/ZV8QC1+a8ERgCtzcDENieKoqrsP/RTFcprBLIaWnFF9vt\r\n+VzWrqLMruPmNnSE6qMUVZI1N82LxlDF7G8L3aHg/rIkXwnisBrigPgLDaZM\r\nvevVWcK9tx3Vu/fIk+Kw4ngR/yvzk5jmKLe58MISaOuC4vkyWlksrEvWXSxl\r\n8+lH1zNlWMmZ8X1JVC+To/sq8gmpx7AzsxuA1VYDymRS5kTrZC0MczM7YRw3\r\nHT9Fke7djOrbaO3DlyiZOUyUOIa2VC8s6sY=\r\n=d3ww\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"698a2bc5ebe3828b3a65fbd0a7223d483ae3b455","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-698a2b-lfax9oon_1678959814446_0.7883886384450365","host":"s3://npm-registry-packages"}},"3.3.0-feature-dcc56b-lfcjrwqf":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-dcc56b-lfcjrwqf","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-dcc56b-lfcjrwqf","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"fc93d54b6af90d7be9fc406a9a46df2d6d2115bc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-dcc56b-lfcjrwqf.tgz","fileCount":1070,"integrity":"sha512-SYB9mykYvhQmXUiQMz3e+A40Vy5LZXW3Ph1UnWv+iJZdJ7bSqRGABr5ni07+ESQXmevZUauLX1XttKhR4QKnDg==","signatures":[{"sig":"MEUCIQDOEtX4s4s+aqau8+dZlqvugPCkMNzz1I9mNA7NyyCXggIgP7QzkjTnuch4fTwFdu8ldtXR0UpwVk39B4aelGIsRu4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1454908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFGS8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLiBAApCmFKKqur7K/DM7eHU2SqPyDgt1frHzWJXsOPFBs2c78tA0f\r\nbmPzqHBcnb9pNqeGS8B9d7BSnH/J5uJ65qbVjBXgt1GIkm2bK7rID6lehBKZ\r\n6jxyX7Cdkno18o88kSd3GEW3IzOciLBmbNtLOsdx8kzluzQKhRqRxzc+/0JU\r\nGKaIj+bJiZzqg9T7kp6BjS0LTKokDGBnP7e1qCUXle6Clg2vd1LFIbSJy6Az\r\nw/TGSfTyAoGGANAGIgxYiIhpwHvmxYAYDLR8CFp0tFwW/kam8GFJO/RR/cx/\r\nRkOP/QZu7ECa2I+cNktkOCrU6eEiTqvPnYTspQoDi4MliPwrToJ3r3tq4k60\r\nNjOMMnq1LqmAhPcplxz/thIzRUCIYN+lqLVg95c+G/xpIaF6KkDRqymzk4/Z\r\na8mc7MIdk7rOO4G3UP/zWPC8PRvzANoB9M8+LjafdS/P8IX18dTAnfHyomuK\r\nxMuzxjaDVcaxeDSvYMszj0WKX3Gqk34jPF+EZgavdn+AHVaDNKLmbZ8U8D96\r\nnyKFGkfK66lxTW+UuB1iJz4zx2LGQSaKtm1ZiC+6i6Ua4jZvM7pOLQbi2aqd\r\n8sksfWMoyx0wYK1QJyl8F7NCHEIwObljtP4C1iO4FoWqCVl5I5DXZwCGKo3h\r\nS6Y8VeOREiTlnz+GLFvN09clj4Yo79iHB4c=\r\n=c/hQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"dcc56ba47db3b305fc492a4b3857d815d827d322","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-dcc56b-lfcjrwqf_1679058108427_0.6362881865466867","host":"s3://npm-registry-packages"}},"3.3.0-feature-7d8f32-lfgjz76v":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-7d8f32-lfgjz76v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-7d8f32-lfgjz76v","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"aa6ff029407e1b8e4c74f8c2dc6de25053d5689c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-7d8f32-lfgjz76v.tgz","fileCount":1070,"integrity":"sha512-HnF4cPogkwjTyr91OE+b3X6XK6GEDJ4VxqvEkADo5DD8GGutz3q8cMnqs4b4GxlyIKZDGes5yHif8G143RZu1A==","signatures":[{"sig":"MEUCIBLyiYVrFiBI/Fw+jWQzBE/NFTZs9r+VrazrcjWERWy2AiEA0boh2ybICQ0QChJc7uMnkBYwbHkLL4N6K0y2MVaLtTg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1455776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGBbqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmkA/+MY4UCly1ZSWMdv+oa/Xfnz8r8BH/n4/qsSjTNYciGJ9nkBnh\r\neI/9lURrejfSX7P7I3vO1XRz+mGajs/msN4Oq8k+c/mStiIuvAly2pQo5cwJ\r\nTKhuctOyOjSnsxmeRON/Hr7QGC6F2L6F0b2Y04GaqM63pcXyjfmOU183p9ZJ\r\nzE8PqRpMWMFQs4EYqR2DvO2BbqkRNSPBdzllMVChadZhLHw0Z/4fT4pmaneK\r\nW00Fm5yxxP5e6b4jY1WYN7JzvZFfo4s7/ixcVaftYaC8i7aqzSVdp6HRi/2K\r\nmBV2w2/baI1oogLcA/BgGtg+rrgJeOrxOWRi4klDzIIQ/92iUIhpH7uSLZ+z\r\noaaKJCRp+cLjg+7lHyyO1s8mHWgmRLbhgToxJ6fNwKuRwXdewwMVU3Nkbl7C\r\nJhRNL0n2zf0Xk6/hpU2JTqRW1xCjpBYFc65OYD/P1ihKJSCpzvDj2ZcS89Bq\r\nuifUMaN4vAHTXJ7WPqwIDKgXd9MgK7LxY7XQFWhLeQUEYLThX5HvmwWWPQWJ\r\ndtPQwJmjzj1yVK83rQB71JB8JcRu31V8uqsiu+aJYrJryk04oorBcOwifdNL\r\nYQgMndUERzNAzifXlW6Iy6im89ZRlKhNoFWlOgBsMhHo6gI9I1ikImqGwUfd\r\n2QCCILNzkyMSSfxmbCpc8dtvesWP7kGIXWQ=\r\n=+TAm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"7d8f3266a2d40198441f06f47335e5918fedf4ab","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-7d8f32-lfgjz76v_1679300330437_0.7408129888758987","host":"s3://npm-registry-packages"}},"3.3.0-feature-fdaa8f-lfgpeoui":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-fdaa8f-lfgpeoui","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-fdaa8f-lfgpeoui","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6b3383d710d15d0d434f3ea90a136dc5a51d9fe8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-fdaa8f-lfgpeoui.tgz","fileCount":1070,"integrity":"sha512-JnTiCrFK3kyuqUWe2DlWij43lYfMfhwaCfskEEX63CF37Mkxv/IgmU81iq+J4kffGf7AOTAnErwLfzkQqXyUuA==","signatures":[{"sig":"MEUCIQDLtLRVPfTu9sXl/XnKykZG7dJBaO2tWHwQsYKBtdmQXAIgYSTxupQ9XdNrd0xUmGy1PICFuKAOBi7C/t7g9XBGS8A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1455858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGDpyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Ew/+MzGo4TsdRiKxdcxwnBgTdsIZEj9nmvyw6ZbbX87Y/E55+b/t\r\nb8wK1oVSuJxUH5LzR1a54NxAaRrbNtEg8TqOejFIhBeNBDw/TDRKysOrNt/6\r\naGtesmmQawsFYmeIwltPA1LQRFwTDdVQHWYHV3Zkwisf2057N6LFebSCPdQV\r\nx6nqvAVTN5PdSF6Dl+x7wZyIGatVkHzjTLrJ+zL590814muB22fcT7pEe3bH\r\nvQdOJjrH9MDFqBE26R+IbbWewAzJ/4llYoMjSR2t0hL8OUGDYA2AEf8jtQ7f\r\nuY1CkUDzgUL93OW3wJPvNcFfjOzXDPeNCP8+WIjgVRlcl5TI8aE1CIjPIQs0\r\nJtj68GoFIHMhlD4NFYnJ0iNA8fIMbEnRYf0GNGM59r8SwwB++TTy8C4KEZQt\r\nvX35+JZWMA6xiznIVUaF1fyKsAOv1KFFbtzMvNL1zuje9ykeGKDUA1r3e5OH\r\nHsjPh35yJinqcV8gG+2JVTsxm0igiFIN46CzzfaSptT5PNafC4ijuvo8+IDC\r\nD9TmS3sncpTy/d+R0wrtBypIdyIUVbSYX1i3lvJiA5ELN/xElWznp7N+xDbB\r\naw2c+b4pDpIAdtBsvoo+sLZTqCey6oCTiO/LkcJFS4KtUN8lyv/8ZzOS5JKl\r\nee1b4IAN5nP9wFvLtyYyZQNzukcuhlFWls8=\r\n=COIc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"fdaa8f0cc3e3c3ce575d89d5b063cc2b487bf8c6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-fdaa8f-lfgpeoui_1679309425894_0.575035185477571","host":"s3://npm-registry-packages"}},"3.3.0-feature-eb27ac-lfl2my58":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-eb27ac-lfl2my58","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-eb27ac-lfl2my58","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"dc05dca16842b51dfca70877c90fb974d8703e5f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-eb27ac-lfl2my58.tgz","fileCount":1075,"integrity":"sha512-UmQrbA0ZO47Kou84G8TELjqWzCyerHZ9vFo4X9spZxT2PA8306a4bs7YboYs7stEBjVHhxo5tUzCifs4VXWMdQ==","signatures":[{"sig":"MEYCIQDuE09Jp6fM22rH833S6IB5KRagtUZKwseW7CaE0ERKYQIhANwpk7unaYyZtll6XUjJ6OEafFYLnb9vN+vLgUmXOfc8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1456055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHEH3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2Nw/9H1W0Hh09w4TvvdKaB91xiCfHHpW5MTatJG1vyimHQr/WCY0K\r\nFWD6P6cp5gJjk7VIF1j68zXI5vfxOblDReMuIOZ1yNllTx3HOKYPIrNUlBpq\r\n2Aag31qI42z5vecvEFIaDr4f2ZQeSNkYfr2gZTaLvfnlATTCj/4pJAgELXpE\r\nrOjfnlGecBcCuUIwT9N3mZOka6ymsjIJAimSeGzIlYeWUzFixoCLQ/wUS79K\r\nyxu4qa+eSnvWWHtZRU7bAfoJ6oeIQEtDHz5xA122nU9pIdx8jrycA44dwdRK\r\nA67hQu+pqDDTqGwGiNtCR7nvqQ9d71dgAw1OHQT1QGjh01Oa9D9p3umnsD2T\r\nEhAOQxdWINcKTVES1rOn9qJL4I0lTmoiW8rYiaBamUSK+7aKtTS5WZfn+/B+\r\njAvSAOTTcFbfcyDRVYrDCwqk8LoMGxz8AbkftD7aId51URsU7/vS8nefFY5p\r\noIBn209QgA28Auqs17HqVUyZwGRmsPk0aisoMoH44pqZM5W2kcx6InTps3DW\r\ns1deFba1OyOYAVc0WiI7YWps3PsLam1m3cBsfaFRwKRaqHYsb40nBK4Oa0wL\r\n0g3Hp840zNQDFWrr2zyhdLv4oEIPE4s8eIYO0LXeMJFSJnFGZhmNvxlln2aj\r\n198F2dTvKuWuT9JzTUYpnKj8OzDb7aSNatA=\r\n=C8H6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"eb27acd2be388a73f9f8126a6b6c96f181cc4741","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-eb27ac-lfl2my58_1679573494998_0.01479527636228739","host":"s3://npm-registry-packages"}},"3.3.0-develop-1b8dc3-lfqs0zp8":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-1b8dc3-lfqs0zp8","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-1b8dc3-lfqs0zp8","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"ea2636a80693dc1ad03b7cf833392afabb3b1655","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-1b8dc3-lfqs0zp8.tgz","fileCount":1075,"integrity":"sha512-5WAYHsEDYqrASL5UAFFLg6Xa31DXaI2jz0eqLQXVR91ChKWjfwAkFOxh/VsWarCZ/XZ/kPag/2rOuM0MRRI3Tg==","signatures":[{"sig":"MEUCIDqVO1+WAacLT7YJZA5fHQK6lpT48vTPsbYJHxMMG16+AiEAgaShioLsDYswVnkMQUuH2FmSkvJSeltSGzbEkxz7mPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1456055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIYWpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2FA/9EN90shZ/c1jmnOz60Fh6GjJ/hARFkqcsTidcB23cYIaEEkqo\r\nEzNirfXQ46yETA+IxMhKb46DNJILt4gmpQ9LleK0Pe/TvAHDCr4oTig2ejwj\r\nrk5knmWZC5UU4uHzYYjsURmUHiXxfstxZ/WdHCLX6HZaTJV1fpB19SsKWlFL\r\nT0mL2WBwtXRzsGfjvKOYC2maB0ErZbqNMSNLfAyydebnmfy3qd5T/Sij/R8m\r\n0ny7PrS2xxNWerhlPz1lVMj0awahrjz4SoFDScShLUZlmsD4GE9qanLHUUH6\r\nhWPQZKt28YXNtarLm/OGZuWXxa/PFtg6kmCExNFc3hd9iUU+tF+PD66M/BlO\r\nb8Tq9MZ/oSr8/0qCgT+o1wMILMd+Xbhzkis93l0dJ5sDYskSbJTpmv1BSCqt\r\nNjGulu1YIwsIS4544cqLi2qnOWgXV8s11QRmZfbGTe8vwtTM1OyiGo4nFbk6\r\nJUNjJ2U20ro7kJMMRaAIYSawG3TtvDV4bxSPNIzmqIqu5+NZh6+TvnWhiu2t\r\nfrJBWkR2bBXEXbG3X+hzm47M08scfWMTMR8yfPIi1xjDh5jAqtJfVvT+37lt\r\nsTrU4SS5GcOmu82hj00S9SrIz4+ZZ/PFUAMORd17U1cVXNobet1HOIgwUcDk\r\nD+R4QIDAvxclrP3Kp+kyPyNlwPtSHIsZZBQ=\r\n=mgtn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"1b8dc3207b90dab863306fb49482d8e11738bf03","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-1b8dc3-lfqs0zp8_1679918505250_0.8854615254906126","host":"s3://npm-registry-packages"}},"3.3.0-feature-3d9484-lfqxdmzq":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-3d9484-lfqxdmzq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-3d9484-lfqxdmzq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3ce8a6d5be553683f3717b67e6605217ff8de8c0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-3d9484-lfqxdmzq.tgz","fileCount":1075,"integrity":"sha512-7A4aEmZczzAo3oqpufhRZPaDpoC14DD5WBnKIZlDC4skU1hiIYC/Jv7r3IJrWSdr2qOpLNzGqBuoOvZCQ3PuBQ==","signatures":[{"sig":"MEQCIDmaqdTVc1cqe3qu64snkSclI9cuMxVS4CDPx0g+zd5BAiA+QZebTn4bOvsivr2JkLcXh+dbq3+25DXmiUUTfeLRGg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIai3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7nw//YhFGYg8RfWe8sGJjb///V0xXr4xiOtrjMXxMx1IMs1HB50sP\r\nbVrsbXRJvCWQ/zxSov/mjGCv0u4zqrn4ZGYkEeTSd2q4NXIovCJyzpLzSR+W\r\n4EwbdaJWR2HudLi8ihCbSIqdJlinUHzK8nEEUaNPzpJ7dBpd7enOHVoSgjsl\r\nOFQTFLVaZC+cfRqlj+hI1lyi+jFgauDJH9lTczCSFOCog3zVOwaFwzAmnNsw\r\nU9ardoYkPdvJkhOtlw5nR7/Z9o+z5fIrBgrDTXXJZN18S39Y9dqzgFe82C2j\r\neAI0QnjNfmHytKhzialT2QuQArFeXZ66sPZ6qgqbvQe3Qans0bYQt7AYMsWM\r\n/gPbmPZEFv3xuyyI8oirkFBtc46oXoZjbxq1pSUtsmZDeJheEiNIcFz7/2kF\r\nJzn0LyXYExTpdBb18hma8Ld7IXWlW1Ul6/nInwCkNwav9ClvUA2oTTXpxkaq\r\nG/2GV35kIeiGG8Cac4axtse2En6+O8HPj3q7BunQl3HxKzs1UhDg15xj/m1Z\r\n6DxY0GdAl4TiAlPBfoS0meAs3/CBrLzLN/8Xov0U+1Xh8Z/cLRtNJ51BYiZr\r\nVYVPaSzMtfvBnoGlBE/X+MEFTQeZraivNwxI/xoCKF7SZ3saQme8hzEX6YDS\r\nUDwcVldqhS/d6woVtlw5+G1/qSohN55Quew=\r\n=K6Hq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"3d948465c97fde16c1593aa321fa8b51194aff54","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-3d9484-lfqxdmzq_1679927479298_0.37520868018387277","host":"s3://npm-registry-packages"}},"3.3.0-feature-842b42-lfv0xzoa":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-842b42-lfv0xzoa","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-842b42-lfv0xzoa","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8e5953dfdf17672b82b8bbdbcffac8324ac16067","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-842b42-lfv0xzoa.tgz","fileCount":1075,"integrity":"sha512-Vlo8w+Yu857bTUseUTm2itWDYP4qDmTu3UKAlqSQd7isQFJUXmesdozZnxzssbsxFSd2C3itTpTsCHwnRvNIpw==","signatures":[{"sig":"MEUCIExPbv+qWZ5IiJeJHZqLPN/LdEeqmaLMNzsz85bzG2w/AiEAi+MxPSVlyKA8AJzYYrRSg6b2q9DJ0eMgx91yEhYx9Bk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXDkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBug/9GVqChQoiUyafcKm+UckjLGrNF93aV/g0vYw4FoJnvLrM7XNf\r\nYWd3bvJs1/zpIF+gaZ2qXSdrskAV6BhHm+snx5K86VRhuVbXmDFWCUK6hsbX\r\nkp4m+JuKQ1DkR6H+piPozqDEDtZXQUBqw28pJ2vzQ+qK7eeXv1gw3H/xcV3n\r\n9gKPL3CM7rSAtIuy4jSQUrEuR9DOYFZ/AvN0tZFbaJglmJkoozktUxizpW3a\r\nx/6V4tnpPgE4s33mrQML1c77ExoMm1VLIDxfIV9j4iGjPdj2dNnuW6jQN3Hn\r\nl5jvMvOhFf80UJLEyFkJDPAos/x3Eiq83G9zMEa3To9QkiNBYK8jamgaJaQS\r\nbhyw/MvXMu3J99pn/KEMDRcovBga4BlVvPv3SAlDR44Ivtj/A3baKkeASacF\r\nGprkyEmWR0UACoNRJKBisky1ZNeM+LMFqQgvJOzpbjAmWoCBf6Vek2+1uOAz\r\nPUVLn8J2b9Os+x+NDaiwvzrumQtq1s/8uMNjS289akgtI+oP48AmibecjUiV\r\nZKrb3fmAYNl2IXimHwzinCQ4TcIZvxnab6cwLpP7Vhu0rvtyt8y3+dQ8A7Yb\r\n4+OKVYFi6K2zl3NtW2o4+tbhRBpwL/BDvL59qYX0XrI0iO960cvULW/N5LE7\r\npA3p6vPrH69WlaGZR53wIIXrz+SoT2Xzux8=\r\n=HhMG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"842b42479d875ce1822bad80a940fe99163160ab","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-842b42-lfv0xzoa_1680175332291_0.7782924723478124","host":"s3://npm-registry-packages"}},"3.3.0-develop-06dc6a-lfv1c5fv":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-06dc6a-lfv1c5fv","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-06dc6a-lfv1c5fv","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0b04215be5ba5ecfcba2327347c11cfa7b0cce81","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-06dc6a-lfv1c5fv.tgz","fileCount":1075,"integrity":"sha512-uU66JwJZSEt1l+GhuJsk0HBxwxJLTKbBa+rTBs2zYN7ee5cnHIRfz9+wn6GU6rHE4HhZcUbNngCCDmSMOGxBXw==","signatures":[{"sig":"MEYCIQCRtx49AFITXhN3FsJDUagsaVsxF8SteqHHXMWQDXJoVgIhAP4JD2IAV6alzMh+tfGUxYR7oLSnlAAd9NNZMHaQWTin","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXNuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrvmhAAl/pHRD7cnP9GYH16s+oNbbh5FixxtNiIylwx+cP14tBmj2zQ\r\nqNkYO9f6HVrqQ6AHvvaTWLjhkGOtO/iha1PhH807F5RFdu9siTOjMCvju4aj\r\nMQabCI0npcLldq6xQx3uFzlcrbPeLu6qUIb1i3b80KSbk3omILzYBn8nO5a6\r\n1JB3wlJFYzHsqCoF/QSnF1wEXUIiPg7uQ1YgIKFGdO/8mY7tmTmm95ezFARe\r\nYJmEEwHliqTtNwAJbb2iFNX2F2l4PkyF9OX76vvoC7QguXZtCzKu01U88sZ2\r\nGGb2MDhJf4cjraCeGQsYShw6QGjwoarFhaVzdoMwEySaMdraglxctwWyGbeb\r\nBAQeHLJp/tdJ0iEOpU34QN6003Zb4MzdgsZpVVYpQ+8Ghg5c7YWvDtxgN9NT\r\nX7YzxR1juvpYsTkz81ZMvNHLLnJdjKo7MAXBsD282NdaD/SgioDg8dF2IJXm\r\nLjYfOB2Sj8wUstHXrWXuD78AinBg06064/R1iRC07hwpicK6Emih1rp6piai\r\nbySry4d8MnTVgFc7oDvlx6l0c0ijjVqHHWZu8QySQjmVhv09Knei0IekVRkC\r\n+F0nkfsyCObH0QJ11A9gD4qM8fsFSa11f5LHiG09DOn3yVUYOlMN139f09EC\r\n5NIgi7SrWKZKNA8RdB00JguPoWXzAPLKs4o=\r\n=NiUm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"06dc6aaa3d704e25ed09fd829b72e097e8eb0d26","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-06dc6a-lfv1c5fv_1680175981816_0.9457030885155562","host":"s3://npm-registry-packages"}},"3.3.0-alpha.10":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.10","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.10","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"30410f749b35c70826b243d8c10fc8805b05de07","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.10.tgz","fileCount":1075,"integrity":"sha512-oa/MljXFcvgmejFMKpSZk+xhNT4PRvCfNuIs+c35HaE/YQ4YrnJZMO275UCHTN8hpmmyjA2/ue16+txrg+loOg==","signatures":[{"sig":"MEYCIQCaKYZ2iI1W7IXvS2y7e5YqRwG1BHsup5HtMKV3NboXCwIhAKhkkHTrYnZW8xFkjqzsmNgRiR80PEPYS52RemLEVxm0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXSEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEdA/+OQJHyJ3PQ1yso22mKrI2ZO0kfmeTuPepgOeC0nMv5T5/Bpcf\r\nLS56doqtpRJIPeLp6HHMqkEtovUIKTepz1XeQyD/9xVVKCw4J9Vyzvy5d9Sd\r\nFb7/qY1gVU8f533+jlhqPRTU9UOm+9Vt2Km9IRl0LYye/KGoxR0hYAODegCO\r\n9ZyuUe1ihoDcC9HzhkrKbEuS8XCY6xCp4o7nsOYFYR4IIWwtB55RVZUlhYpk\r\nB2ufcftG2bubcP3BAKfv9L/Y+Yt9yDr9YjCkqAQZ4HXeJ6XHKgnHb86Puwwd\r\nCdgGrTcC0bUhlV3/m5+TPoZ8BtJEsYU6SovgpAiKrm4GVoM9upBJBvn+96ej\r\nrqmsQolXBBgFR7i6CDFmy5eT3EQd5wvsFuAY4ZQWSz1YJ7J8Af3g1zi4Wm/8\r\n9at2Sy3/jNzP/b73OJ2wnMMW0kgf6R19858ouhGh8+KNjV6cJIns6Qtfmeu/\r\nTXwrKqx//FVBIbWF3kPI5CTkF/nDoDauH3KU1/H1slCfFe+Kw9Z6n65C8dT1\r\nrLCX2t0Wj7dCLrp+/EJz/wV2yDVkPN0fA1tT1lRdMADHgEFCjhw53184v6lH\r\neh3aB7jF2tr4it8O+k5aP5q/mvwPBB4A397CvTkk1Dxb5FxdVmN3LEJNLaXl\r\nfmUe8PvCM5/Qll9LEn1IvdWKdzWiUQiMnBE=\r\n=B3+U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"6ec7ef0cd2634f9cbba88fa00e9dca92c878f1ae","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.2"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.10_1680176260331_0.08108827657177642","host":"s3://npm-registry-packages"}},"3.3.0-develop-f82f23-lfv1tmg0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-f82f23-lfv1tmg0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-f82f23-lfv1tmg0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3b007e36874af145d68ea26f7ddca22f4514a4fa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-f82f23-lfv1tmg0.tgz","fileCount":1075,"integrity":"sha512-cccaWoLPyWpQU5rbresSQo+jvkSGKDtZvKU3MPerSkL5alSOW3g5txxhHmWuInVKts435rBZYymtDVq+ZT7mTA==","signatures":[{"sig":"MEYCIQCHReXeUOyrOMyZKoH2KS2gcyATPi09ZFLv08wk4V8/8QIhAJjlE6N/xNEVL5gWpdy1AWTlQDoGyp2NWm64zfUipITo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457231,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXaRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhWg//d1mBGwh+wYwt7G093GFT5umVk+9Hnj/TEXieQtNLgu1YDGmD\r\nX0wcbRe7tNLkA8kKvy/UOAMPFRLJAwog5VpKIqY2VC1L7t+3+BNItgi9Fmx8\r\n4SZBQ7NAccIZFHfMCPIQCuqykEyQ28lklrsuw+Xo+8cflj10CQWtT1Te+Zl/\r\nGHzuWxiTpSh8BIthCvNtWyeeQW3zfHuiGqz4kimwLJ/J353gSau/lBnj8ozs\r\n63vnEl8HAhAGmd9b9UB4SzeC/WFtvBfO5GhL9xv1imjKjhQhOjP5Wv63yVVf\r\nRbQ174NqosFRtBnrXgkhpc2P55vq+cecsUUFierAKrltyzR/WEUB8R5aqjS6\r\nb7jrFThZ0KuWMFNo5DZGZDDIdxPjoyunk1cLb1/0Gcp2I3/Yji8wlMRXDIcd\r\nFa+9B3MKs7n7XIfbM3/cm500rHnqYgjYIN9yCjPk8s4JtLNVF+5G3tT8un1W\r\nnJREKJf+wKTHVG7ZRZ9hvJrhqvryswri1l57zkq37k+k9a6dQYyK78/2cCfn\r\nddRbIQ/0+gZ8sdjyBeSSrtO8mzIs7rZUMN8IvWtUcysyBK6CFaQlfu48PwXV\r\nzOVlx3d7lIccOMN0EuqOuXViyYi8uqGqHOhKvFyJuz9crtQlXuAWXKIfjb4Q\r\nUM71ky2oO7jISpQmAhM4yPMBmqbBjdN73c0=\r\n=OcfU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"f82f238c910ca494c365d791689a7239f5f9855f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-f82f23-lfv1tmg0_1680176785492_0.037062508733483934","host":"s3://npm-registry-packages"}},"3.3.0-develop-380078-lfv1u98q":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-380078-lfv1u98q","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-380078-lfv1u98q","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"bed1578976326492552fc27defc0296bfe9724fc","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-380078-lfv1u98q.tgz","fileCount":1075,"integrity":"sha512-Fdi1yxhG3pOliPiDueQxUD0PjOB206lG9IrSAtBAYsVZYdz/UCmZ5WAvNJ9XxsyquPi1OZYd8owbz6VCCi43yQ==","signatures":[{"sig":"MEUCIFURVFMHGNjrG0T7M/P7H7bYryzgSXOTBODnh3ynbMOiAiEAu6M9UY8qBdXzbfMEQMoDj0XGr3zo47mbjLcbijY+8ls=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJXbTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprTg/+NlDfDB6CSmZpdv+SoEwfz7Qxc4cPEV0QRKGsDv65itjuugC5\r\nHL9faJaiLzGz/3js9u8jBpQ8H/k7bqgM2iVKU16MOaT10KffhceLDEPQWcxs\r\nXrbAk1sEo/rqAmX8tet1uIKbZzNC6dp1qrLfHd6snQP+INHqBwTOVTK8bG7K\r\nmW4J4fywffeGMW+VOzPgiBgnI/FavNg2g2tVwpZRxp+43aIq6NyVTf4d58CH\r\nGOHY19nzfZC2X2reQhxLN0y3Sv8/UTnnX1kmLzTyAZZnz4dW9yqGqUZD0GvH\r\n0DxRZ/Pu7QpVc8uFxbDPMCuxnVSE1Y827xeOtBiQplYujy4siXp5eosDGJHP\r\n2lh97jaJXJGIX81SDGkhqC6sgJ+2JIIBO1RgFj9C97r+YdclOb6IFg3vnFsG\r\ncDM2UbM/jEZdOr6YavbgVT93bVP4YzDQyNJQNf8kjGhHLshRFPDpMnF15Wr7\r\nDXEAyJx7hvt69nsjTZHr3mEVHXR2b69q/EzYufsZ4IkraJoHolPHaqhhP/NL\r\nKAmoJ7vYrKPcd2l9+WpNbYcLv+5fS7CfxJvtalq9CTGKLygNO2UExzBzDA2G\r\n/GZVcZBLw7TCrtBjv4bded/PEBgFvP8oDwTd3Qsw+bRxhzPJmB6yjTdlKQky\r\nXEAiVsTjyv5uLLP7ygAST+oW5ohvh6WwOHs=\r\n=LXnc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"3800785ad4f70d82f574872e367f38d59a566442","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.3","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.19.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.4.23","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-380078-lfv1u98q_1680176851628_0.1431033899045524","host":"s3://npm-registry-packages"}},"3.3.0-develop-f9ce88-lgmb4xrw":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-f9ce88-lgmb4xrw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-f9ce88-lgmb4xrw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1aa5d1ccf4062384be9ca739aa82289cd1a637f7","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-f9ce88-lgmb4xrw.tgz","fileCount":1075,"integrity":"sha512-DeoMe3B3K44LmPRzVTn2DxUTGFLORkBwAeeoewxS0NxFtPXv4nP5tGOa3cgmuPhPBRiZo7F+4a2C7Jk5ewt7+w==","signatures":[{"sig":"MEUCIQDmR1KOOzmjM5mlhSedbQroav9HQqK9OOnUw9JBT2L48gIgeeksupdLbPs2ucpksvi21pTPHtv7VTmDzlMcy76X1Mg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPpz6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo06g//al2BwpQOQ7aJNxO3F3VylelHChhm/xcdNuPc2VVn5e+f3ck3\r\nrnwVbm6FZHvhUzT2D3/YUo86+FZXi23D3Sgl1tHYMmzWO7pZTQEtSA7YmdN6\r\nm/afhlpTq2XG08eZIZ6vXAgW7FgEHIc/nzxbtEOsvqgAbu6Obh+XFrnUm74b\r\nNWKsr6lmxzsqG0mphcGcCWR5mdhtV/i/O/5axVC8llGZ/FkWjb5QQWroMDLN\r\nRGeUvIa8wE7zLgMli+Bo8Pjl+s61pYcwIsU9hKH/aeCrYFQea6tlRYB3S5CG\r\nJS2VRkG3eRWl1C9xPceBoRZm7UjzrTYdJdpz+Dx3CLWn+9lM2tLCqLxUa/DR\r\nUvlNI9WWjVxBlHeiymnHl2IGJExeJpkroWO3FN47YKr9JtVw3V6FJILRknQ9\r\nW/UuFShq5SlDRZs71f2nEIVhKP6r0qhCaKkITXP294raCx5t/GSZoQ/d+TgR\r\nFCXcVH6+DrLkLIMG1iyl7hNgNz9UE/sxSG45XsbQ9xMjjPvPHuDmvfFcmXk1\r\npGjmVGN1h3PJOnEN4pkhpcy44oqVOJ/EfGBCDpkxA7NYQhU8VM2dO+XKOlf4\r\nkRdR9Uj0U/KLKTG9KqoBkfXVuUK4C62ZVhqzK/KaVUw5t6F04oi+NiIm3nMF\r\nebG2poq9A3PVcy0aMoPRMZg+pO1k859FCKg=\r\n=UhKF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"f9ce88b31c17aa0a253419231c2fcd54e6b2efa5","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-f9ce88-lgmb4xrw_1681825018370_0.3489004634404689","host":"s3://npm-registry-packages"}},"3.3.0-develop-f202eb-lgmbagf0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-f202eb-lgmbagf0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-f202eb-lgmbagf0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3231eee75e221f201f189b45e6223afdc6959a1b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-f202eb-lgmbagf0.tgz","fileCount":1075,"integrity":"sha512-DTL9CWYZ1jfubnc3Vhl1fMxMMQzxB+op2/mzC0QCAtFuTJWBuF3KCy9zyUFDs3yFfdHjuDBHKAwNuEJgYSFHZA==","signatures":[{"sig":"MEUCIEkTXQSIHzPCsrPZ21q9TFxASMLrQyskXLFFnLh4wACZAiEAvv7qVZH1sf2MnQ3qHp069vdbeE5opK4vyf1uFWkROWA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1290394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPp30ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUXRAAmlOd5A51NaMbiAZg0euRXsVmwtDUVro4a1y7dAd8Jsvojxcc\r\nspHPCfwT2Dh5GoA1/LOJ2KiHnKlFLDmF72nOnUEA7vqk6wxn5odDJqs0rwnx\r\njA2hoNUW7mxksOeBWqwytRQ8h5RHyoPYlIeSOKFRrHIZQEogsjGQE7QwjINi\r\n3aCLeWRo0SZ17orql3cP1KtTJWSXTpVmAOK0vUQHoVjrVDkogD9z3E0lQVZn\r\nmsEOyc3K7w6go1wZq75kQUhIZkbomdRTycIbWVyU1OgdFiKKUVBDEFAoEJ+p\r\nyRjoO9md9b3CAsjEY2aVYnczhtVKAd9QXGCZCrYBwHwgzUrg8It0M71HDu6o\r\nV6RJlXcTLRasK0PC3YRjTZl0hnUd7dnH3n9a85PDvyQUvWIrtZpIlIURazrd\r\n3IVW0T2eVkFVzCnwDFXjvuHJuRhSc2m87TV3M30j+6fJtfPrZ1IQq+xkIMik\r\nh4uHbWSBI5ngzxnUpZlpj6pk0C5gE7hXUfD0N5iSdjgHFdehYYBAhi7XyI2Q\r\nE/fOCfIX8lw6GPqRJV7dnGXS+jlBaCPUkh/ebApohP0xyaiMSQh+2A6ysNf/\r\nylablSuk8xqUAbxLLMGdSIHYaf7K+NvayDISvRpUcSFAG69Aft1w4HQIEmB0\r\ntSykkQ257d9m8T2C5TJ1TBPSZvJKKlJF+aE=\r\n=nehM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"f202eb0df73191b54e433fc0c383ad4e406e3ac7","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.0","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^18.15.11","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0-alpha.11"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-f202eb-lgmbagf0_1681825267935_0.16400995721019807","host":"s3://npm-registry-packages"}},"3.3.0-develop-e3748f-lgndsvh1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-e3748f-lgndsvh1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-e3748f-lgndsvh1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"43974eff7d02b1d98efa86f6d0ff68e16f38ef50","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-e3748f-lgndsvh1.tgz","fileCount":1075,"integrity":"sha512-+fQ/xh8i6cY3mtAzC3Xyp8oB3whXtn+8IMLmhVM95PUXBvIv/HJi3DAegoOODT3HsYRu9AO7eM20n1UmooWWjQ==","signatures":[{"sig":"MEUCIHAQqWPLTNjOIFlo9tMYFNXFWxQGzQtPimeoFuIU+UizAiEAvYU9FMc11B6UkSvLg9jd+YYjm9hEId9aK+Y13C9qT/U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP5rFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohfA//XgB/QZhxbxt84KqOx2zEK4KMqtRdQei809J1C9xGPq/CwmgL\r\n19snGkMhOBkKy24jr6uTVaiO5gGCIfC5LpRAn8tRLR6EBZ+u7oDK9jI9Pz8U\r\nhqoII3qLoX9VW3fLoNkjW7+L+jmsUH3TJKrYi7DW+q4F5KUVHV/7GUj6cHoR\r\n4xw4cxS4KBbts2R+upTtoZW8D3NbkFUORoHrKuKsgBkNfugxGrfJ5V52m68O\r\nQwtRsS8HiULymsOX5nOQ4IC0KQFy1Owzf7o1wEgumLJ+446nFVwATFG2uRR8\r\nDIu5xYasTpOC87xCUScqPQlQsPpwPQ/z9w5MSCJ6OId0c1LqFhfIRivSr9ff\r\nWfWByEE4eWzK7GVcoV8wYWSHIEo9MTzkoRdFiZESSDZDsxHskGL+xvppYElp\r\nJr650u/DotNVde35F0hlRrjbLFRMsmlFnkEfZFvA1/QIh5V9H4PeidRZ56/a\r\nlSWMZf6bo2bTmAbQLs40QjBBmnbO88K1Kpch28VpeatyZuMqyWQmkwknbWVy\r\nUV22Bbil0lDIRrUY/e4OcmY/JLE8uGI+eU7wuM51LDIK+GSet2CBGz5a3UR0\r\nsodGfie8azDhOonhSNdyYytdrlnHTpRe5wzc6/bJ2yKtbk8g0kiO8vncqHsP\r\nABgGsB4biLrWupaYSsQJuxKEt1jbYwtlUfc=\r\n=C0VL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"e3748f7d2e095e946c572e35790ae4fcd6d26891","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-e3748f-lgndsvh1_1681889989713_0.6966540548828055","host":"s3://npm-registry-packages"}},"3.3.0-develop-f5b69d-lgndwsva":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-f5b69d-lgndwsva","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-f5b69d-lgndwsva","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a3e53543f2f0489f38d8356bb9b554ead4c1f47f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-f5b69d-lgndwsva.tgz","fileCount":1075,"integrity":"sha512-MsXTP+hzwqn7MPkne26H+RNxjfvJXw631IWx+W+ogf5uQKQ1x4pjG4ztiusVxWT+Vm7mmruDaQohHgX+gt5gPw==","signatures":[{"sig":"MEUCIQDVtOl/ZJO3Sh09bvflREv1f976U83o1VVoM7JTSTiM1gIgMcMOqk2OirNzsdA95RK6uzz09UXxkD7uP81BoQ+pNHU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1457191,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP5teACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrRnQ/9HNeaVI+tvbwCU1DkdBLC72RQQxF9dvy8mtcwaI3ynvkCQ67+\r\nI3Ku2JIj9lLsMDbzwG+aXKnpninXHCU37XFxOG5n8bmS9wSD5BLYsLON+DPu\r\nVx/XktdaeYQFLGBJvdbJKtJVzHQvld/v3w3dXRHVQCcRUQvGiHEgtH3cejwx\r\nNsCsGgQDIJ+UPufHZEB8gRrRlRz/K/5FSadTpIblYd5IyIMS0grdY1RggT19\r\nTxlzrcluqUFs7A+PzURbbaaqUqM4BnQ2Zl+KMXJkwA7RlG4Go7+TT4TS86wi\r\nmr6fExB8BnjFMacy1/hEGJAZ5Slt4tG3wUub4BRUy4jWU/dyx63MX2SByTXB\r\nQkSVP7TbHxI6BhcdK8Re4wEIAWe/ajCk2sCpLBGmCBHOU/Q17Nakmfqoq2uW\r\nAZ91dLunOgNmj5tfPKjRcdq2pC/YZfVSzL33/2M9Lw/s3TA9EQvesHqTxB6L\r\nQFcH0GltBxukrps1B4dxyp6Z6nadnue/652ADbMCFQbrmFVI7rHJP0XaqrDg\r\nm6G/cDuXtdIN3He9jXo6JfJ03ZwrHWtxc5t4E1FSDmtwFBKJd1hPQBtnUeaL\r\ng1trmoXsfhX//pCns6dSsn4wQBladX/yOSA/muTufoqAr3uC76EcLqLfVwXz\r\nS+rXQpfwAQxhD6QewOL+aTWGQyQqmv7hYEQ=\r\n=pEPl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"f5b69d837f5c3f1c41beb2dcb946359a3c2f1549","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-f5b69d-lgndwsva_1681890142080_0.27149017817105014","host":"s3://npm-registry-packages"}},"3.3.0-develop-fe7aa3-lgnhn7v2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-fe7aa3-lgnhn7v2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-fe7aa3-lgnhn7v2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6ef3b3a14eb81b991632cdf9153f3903a70ef930","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-fe7aa3-lgnhn7v2.tgz","fileCount":1068,"integrity":"sha512-g/PQZBzNw3aj7vGhBTM5oajQoh3KU9m5hXMp/ioAa3s/QsKwi0w83hXOKLEjFaFbIfandO+6kTGBheNkTivYGQ==","signatures":[{"sig":"MEYCIQCp8bp+440MPc3CF37hOCzfxvvc9o6FmshMs3JMGFiXqwIhAM75wFU3ReFB9oFHQg8NhU6JTRJCNUTi5uRDvgp6yWlX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1109735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP7PiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpfEhAAhchOLcSHw9tJLf7LeuxXWTr/4Vx1BONyso/aw/20vebqVOdh\r\na+aFdM2XNsRFcd0cDPVqrW4n2zK4qxwWiqY+MhM4ftTR5ye85D/buNFVULcW\r\nTaQu2iErAReUNE4eq8rJ2fX9juLQG0yr56bpuEKVhhxmVzdTDHhVe5/5UGnk\r\nFUJg5qgzcSUY+019WxcB8SeK2BLQHkzoSKNGQG22E63I9vkNdCWOJ3fqcr42\r\n/fJMelKhKaFhVBFOHAU+c13nV46V7OnAuQSkWGciZxPa+ih+IAifd/YOL7a8\r\nqzgJ9biSh+Ec6xy7yttX7SI4if2n5dnqZvWxuJL+H2W9P94ytUI/Rn8ziYlm\r\nqz5L/yy0wq0f0+OOzD5oX8+YKQGSDnC6Zi7dkq6BDOGNjtCYdjf+6MJ0mChP\r\nFxkI3eCkd28hIiqFOtQzA2jKRF6+U1tYVDQGaTahYLrG7YXPHguBZlhpQp3X\r\nAT+pXYLCXKztqJmKiaRICRJF9YgXWTi28GJity0eUBnjs4VJZ60001AVEdju\r\nEWnHotJ667OAi8m39sevP/hKGLP3qUvos+1IWHIqBOsk8T6pu1UBen3JUTK8\r\neXIjNVQ4kteIyp1lX+Iq0nhAylQuoiWKjBk3Ldx0gxKQrC9bRF5fUSDhkUBS\r\nR+iTr+/gUVg4nTA1DtwPkm5KGo4+b0/2a+w=\r\n=ZbrK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"fe7aa3912726ac9b772e072350aa944bec4ae966","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-fe7aa3-lgnhn7v2_1681896418106_0.10650683029781405","host":"s3://npm-registry-packages"}},"3.3.0-feature-0d3021-lgnv9nf7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-0d3021-lgnv9nf7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-0d3021-lgnv9nf7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9a0e9908bfef53dde56d16ea0b5eaee3dba9f766","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-0d3021-lgnv9nf7.tgz","fileCount":1068,"integrity":"sha512-+rjw8/5GwuSc4AByrxFG2bAZGVo2QdbsoSVo+4IJ7U+ls3tQosXgqcWPnf8Ogdr4T6RY7tNs5GOFmKeVdv6BUQ==","signatures":[{"sig":"MEQCIAbu2RYnaupRqRUf2+hgnLVI/kOo8FVaXXYTFrTA4FBsAiBUEueMUJVrgRIH8dL2s0YRoJ7gXLLu0hpDf8keD+oi+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1109938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQA0/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+AQ/9HKm1ZnESt4vCHppxEuCffrRLReUCdO5nr7v9J0CH8rUe4kC/\r\nRt7JlJOCsoiMxzvCjQsN3aZRKmmvoaP0/+Gs+WgL3a5OGS05f0VDYgR71JO2\r\nFiwOhSS30IhffDIYMRlmiJQXT5rAH43B26cL2LIwRtEz3SuxlZoJdxv33bym\r\naboP/XVY/J+LEi6in8HoxORLiF+SoBHIlgMWg62XA8P7xVuG7rYN8Vluixyb\r\nLvn2kirLrC2IbJwe1YygjScr34lTVqeQUzFTAXcVM0K3Sc2oAn5mntzHZH/l\r\nM0iWlnJLNxziIwaLCHMPlQ5j6VKlR856UR3XAlqzieKyAqDTbjVpXvQl/kva\r\n4aBFaNrTnA2+YqLV8+/3u+tzJGPDnFs4DRLpsc/9yHUpRvlwE+vu0xk8d3VY\r\nw2dzqDddDlDY54c/5WFkRCSvslYG4ZL8OIlAZm9+f0kVo7AXQ5JKanYerNxR\r\nDqCyyEUQ04Cswq9Aei6BKsZ4p3zkBhH6S5maOMg1lZ867cXoo5dDo780Bs8G\r\njBb/WIxJKbMtBmstVQ3gQe+EO+UecNA4MFKsU9thRmtDXZWq+j+ysB1f5DIl\r\nl6Iu9qOa+gVNT/Tld/evKdiPJnpQCZxQnADZX50bqi99ikAR5jdX6iJzPKMf\r\ng52JjcfgT7VeG626zDdPfYyXXERLkJnb7RE=\r\n=qDFn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"0d3021c15052a978d3dd766af900f06f3353d77f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-0d3021-lgnv9nf7_1681919294645_0.7086800835077047","host":"s3://npm-registry-packages"}},"3.3.0-develop-6e48fe-lgqbyeu5":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-6e48fe-lgqbyeu5","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-6e48fe-lgqbyeu5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"09f3bc981bdbdaa367fb081c58be9e165236b977","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-6e48fe-lgqbyeu5.tgz","fileCount":1068,"integrity":"sha512-v3wdaFnNj5CAiysYd1brs8NSvYBPlkL8Ee8agoaRL14gP0lEYNpwnUaiqaOcBYV3I5Uw1u9csRZBsjycAR32OQ==","signatures":[{"sig":"MEUCIDTQT6ylJkRdI03xhWzwKOF2NPDopQV6t0a6sFZL9IKvAiEAh1sYR2twCrv2ouO+/dGJOa88r9TNeaZp2uVKgPM/5Hk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1109938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQlMjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzFBAAiq2Ux0AZy+H0spxc9AngiMkdl9DNrodMYlI4L+EP70D9oMyQ\r\nj6gS/uONo+F0iRKZ7hFPZUuTmeVDkwI3rhbDVLP1CzPQ1wteygdf4VhU8ft7\r\nRkBFcZdnP1dVAoRcVA+fDwNjb+Ubzq8JuzCPgC43hNeN/V9Phjff18eNc/aV\r\nlFhkWaAs44uC01n3gcdkS4WbDW/YOsfKcP7U8O04GnAFehLxbo1ifgLu1rBr\r\nSS4lNFvI3XZ+VjTD2eO32Mzrx+pt4u0Bd+7zSW1yQ1CrL1TzO4bth0qUTCzu\r\nYZhcj59cOlX8nQ+EBkxAPf2cA5A03S5UC9zeLZt+a8ggrwBGSxN8g14a3UZW\r\nTLyBTxUJ6jreqcbIfmcnxsYaFfHhORQUOz/pwAYhnLtoz73GxxKnk3hfmm0T\r\nQPb4yOBh+U6Oya1oFhiYpcPMRd/8XaR53BmtMIq39uB6DhlmhMPb4kXMLHWz\r\n3SIRLXPaxb/JyxoBEZhepJZ8eU6CbzRYjQIEmXLcpQdqAOSqjO0SEeTh6uhB\r\nj4IfbszC0Usc8mvKgYvmZjQt+ooDDgQ02K0w1iGJHUtwS+x/zpZeeta1ruIl\r\nWmU1WdKdKx/PvA5mN0zalXTRm8GXPuXh3/JG1P/8qweeCnSo+8X77FHqWV5g\r\n6CKB38cPw9E+3oSBWmyDbUZrxiDcK/GmFLw=\r\n=3CUd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"6e48fed22c95488f1e81b75e874a7776e40c5600","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-6e48fe-lgqbyeu5_1682068259081_0.24227513834210757","host":"s3://npm-registry-packages"}},"3.3.0-alpha.11":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-alpha.11","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-alpha.11","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"19bb88f471c33e2f25f20a5ea21a0e60a278049a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-alpha.11.tgz","fileCount":1068,"integrity":"sha512-Tl+5mYGdRmEPcY9nWqRftMUvdIMEzH7Teh7rsVkxEkpcJd0APFos0CkJ4e6Sp/36QOtckeOIsDcgBq7twHdSWQ==","signatures":[{"sig":"MEUCIDf12oCTpqK2mMSrOKLDoqf29ARqVIfFdINcJt84OHRvAiEAgQBDNEOmNo334W6yM/EDz2aHKIgss8Euor3vWPlTvBo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1109923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQmKUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBoQ//RyEc+JaAwAr5Q1XfkcbILAwVMEASV2FQ58so534rH9y1xA+Q\r\n8gVxer6A1i+eUtwfhqqOdkZ4IhSs4ErzrvCayLwiwHClc/EH6XpHmboid9ZD\r\nFZJskqHUEK300Qbn4tyyV13I+xoPs+9uboeQZ1q8aMqX41+ryc1z/oFdZmSv\r\nee6NRJcYANLRUeel6F5jiy9XCWmYPdFd644R9OGin40XpS+DT9z6dWlcoKKt\r\neRl1l4C0U0UwzAKMXePns/F44LajpaxWaBnbtPxIVJ9Uta24b2sQHIRlFTdo\r\n4XfIplEg4uNTuXlXuZmZRPNzn6wvqrGB7Gx/tM0Wvd3iAH1CJ7YGqWj1msZ5\r\nfsQwwcUcQroTgkAoB74vbl6SafVfGaELmktBXtMLRx/2BpVFAgNrh8i8nMlL\r\ntfuupHwohJjtpdgqeLRYntmoL4mo8YrHId/M+ccL6SeLYm0/puqsKB9qE7aI\r\nyOCZsTaNFw3Z1nVQU/4EjhAaV6IYsoeIol5lERJ+a3GQuYzNGCpjYVUwhaIM\r\njpHBxUUBKCyhr8fiYModu6nNEi42BbPmQkZHN/m4RHB82aAlMaNKLYVy7r+4\r\ng2drg39ik+cT9fTemMIFyvjgEHxfY6P/llLI0ZEXZOjQHB6EAYBiESyTSHOs\r\nHpZWzlbsGNNr/m5edZ8IsBUOsB8OPNRNN6s=\r\n=O/eH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"a7c6efefefe95de5c1110c3db078eae2bfd22789","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-alpha.11_1682072211977_0.24710643809131616","host":"s3://npm-registry-packages"}},"3.3.0-beta.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-beta.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-beta.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"d4049bee875f3180573c0b74765fa113a63e4336","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-beta.1.tgz","fileCount":1068,"integrity":"sha512-SUJZp/hgUJTHpGZ1sn827xpl0+FT5QDc8fGOyNq9n2zubqBLiduerwmQ4ZCiwEdw5fnz2rAMC90l6O7uGZhgog==","signatures":[{"sig":"MEUCIHiFPVP6M2oPujt3L25H9wVZ1s574t4Tl4iVT/q81xL1AiEAnX8xEbd1emoU+7DhtSA0Lx46M32b3AxAQmhziz41uiE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1109921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQmOkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUVQ/+J6S0cw80EUXW1HoFLtRS0kCwd4hEtiRfaKlOZteucX+YskGq\r\nvCyu3T0rbqSGPDwTMXAC9qsMyaTqDSseK3qJZwgUiaJi+SR2XwC9wjgOQCCq\r\nSeYKLuDHRgCc7Kuq0eWJbFzB23wf3JfvwRNq9ieQjO9exYbXOwcqcsLCEBM2\r\nHz/FyPCLukwr6LjyYlKDxnnspOZCM9GQEnOLeDd5xb+soZcPGEPjS+yPitRw\r\nf0P7tUW3yDWo2SNsHW+yi6umCRpGB91JvNopiA+dlvaFVkxXMnxR3PODQreb\r\nKZck3w+FYDaUTnRRJQCuKyBIgsa1l3sfgeCx9UzGghDg0mzZPu3FTP1/4OzC\r\nr35dq98fO3kjjTOWbPi+iqhN0BvYhv+zPYiroTEbWDMH4C7ioA0V8EkvqR6l\r\nSPBPsjD6jsONQRd8mWbGvo2eFTA3U+D+3gFuXTlaDv5F2ZPG9/7uCQYZ+T1r\r\nRhvpXJ0XglR8Ry3d9qF1DqdcAF94ZgHBzgWlXlHBbZ+IEXqGAN8KkssvWEb6\r\nwBRk3y9B0kLewyQYGITCA6YPqkO7x83TjBLU2nDT9BlJeshGxdk+y9ycSMVu\r\nLlPjirBvIOjzRbSPs7VgvAznaWRzz6zs0sYzB1BBWxIlFVRt4f/aBcXQ+VT9\r\naFu+xehOFx/kXSFNbx0GTCc+oq/Dlmtxlio=\r\n=kKRQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"4325c255bb4d4e985a15b57e930585144763f96d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-beta.1_1682072484328_0.5461203730745863","host":"s3://npm-registry-packages"}},"3.3.0-feature-6e96e7-lgyuezln":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-6e96e7-lgyuezln","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-6e96e7-lgyuezln","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9bf11834fbb5d9d41f7548e34fe1ef4269aaac9b","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-6e96e7-lgyuezln.tgz","fileCount":1068,"integrity":"sha512-7q8QiV8D9FztTyuAiCaeYq4n42SldtckNn1nrvmXJIKV7KCg4ZCbmoNb0Us4XoQgO4PabuekhvsEri6hRMhseg==","signatures":[{"sig":"MEYCIQDG3pQE69/dvrPii8j3SmbRdv61mpG4vt6mgA1+BEkNNQIhAMvNywujdf/VOWYtvRukHDJONnKRZToygyJ44FmkI3k+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1110368,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSi3SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrukxAAg7EHooMTjp/s9l+iSaaCdL9u783NPyJnteAqKL4ZrHx1+bSd\r\nRTJtgfaQHwTGvHQgWOv3BnvvGO0JeVhoDpQGRAPknobut57I6HTOC0MUwCAS\r\ntoMWYbnFCojAJgJYgtlhoPcE/JYJ8Y1oEKUgg22jVAWa1gpLQ+EYGheQjXkh\r\neO5nwTdx8pT1UAI4QjHTYSbBqEOPr6tnl/RUmeKHeyEcLqFVsHGYfRUiHn+M\r\nx1H9ztPTDZMFniYDv4bOJsCoYEiTmVwbtWeU+dZn0O3yqTi4Fh8XCjl5n8VF\r\nsl8292TuaHvYHgfu5NeJ8fkKzg9WcDnheuITdy2Eb3gxTf+7rtHEULiVEamn\r\nnbko1dMtSviY3+iyInQp2C35t7M/Kw3AWe5n1teDBNo4kKlzc/DpGXrpTgVF\r\nOUe1ngp1hQ2fj/gRJ8b3J8PXQvRo440EegvwxQcVA+k29WL+2dnrrISpSY2P\r\nFqQJSFLQvqVwPcHA9DG6f5LUbwT7Z+cyamSc8udEziTioqBylYEIVvk/07eC\r\neiAsLXbd6vVAlwAOGh7FRzhg7xuzCvrG37hGaNSlC/9WjKUYpEMd44Xp1WT6\r\nNdQKgfjb24nAvgcntHWX0kBdaKn3yiGjSRn6oihyutFbJ3F0Z1e3YlXzY1yd\r\nYYtIuohKMxA0hq03f4rVwlLAIP9LEH0qsTk=\r\n=asqi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"6e96e720df346dd1c9482c2acfd30c1be73cc1a0","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-6e96e7-lgyuezln_1682582993760_0.0455945510834006","host":"s3://npm-registry-packages"}},"3.3.0-develop-a2e202-lh0a3bbx":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-a2e202-lh0a3bbx","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-a2e202-lh0a3bbx","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c0a9daa1fcc8b9bf03609175c921d2f7422ca1aa","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-a2e202-lh0a3bbx.tgz","fileCount":1068,"integrity":"sha512-rQAzpPa+jCX510NwyY4Ih3y/lwTqfYZDMWTJ6xaVfi8P1ayuTNvVmo4EoDdrZfQMKo3TeTJb0vLhf5c8TUFyhA==","signatures":[{"sig":"MEUCIQCh7WQuh/TxI/87A7+V8vee0pMNNDAD5Ky+SaipvOT82AIgY2xRyMingCrrEYsQaCcvPszg0fbzbG+yXU/fgCey6jE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1110368,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkS4DcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCIA/9EIgjJJ9vC0F2VspjIGv417JTnkMFAGHOmyA1/hc6LdW9UMTw\r\n9+IGqmwUHroB8Ckv0VJFdbIRBwfeQfU+ajJ63DLmmrv7pzr6k9lWlI/ZADyI\r\nQmQSn9YRgbXIeD107tvJEmniWYAlgVWJJqeqrKq4+OilgBf+OFVm/xL+VyyO\r\nvO7YQhN3fc8qD+w/DjU692Bd6k+VlBLDc9IMQ18NIaADw0MCMXCSOziejAdD\r\nmzz8H9MGNdP3HZvajltrjzKCFknotCxnYyP+sHQOKJUwwCgBTrrUz0VppIZ8\r\nSpOZqXNfCIJRuHBg2U2VszMSa3tGj+FvTYAkBBUTyB6HkJaAZpNdIByJVEr2\r\nkQNlcS5Tt9m3NLXvJG3L4c3V9QRGtjTN2XobgDprE3gYFObggTlz3YEdmFfn\r\nViQOiLJb2eAnRh2c2xtez7xtIzYGUPDWPjC0k3PDRbEj1vpY0phnHTO9qwVi\r\ncZ0r2a2cR/GBy2Q8Ou+opei5Je0c+rsfVOfsu1TlHF972KRa3JbLAvlKLbRL\r\nm8QwyZZsm5gDBY9HhQ+n2NB5SwlnEowP//AyzTBMEdTNykSQzt/xpMk+K9ib\r\n3NB7HKvT3TZmkbW1MPRngLg0V6oZ/KM2FUjFhd4bai6apyr+MgjiYg5fCcCD\r\nQKazHhXNQanaK487bmm5WaeVP6EeBgppjV4=\r\n=kg0d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"a2e202bb4aae1fd5a6854368607057f64e8dcf8d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-a2e202-lh0a3bbx_1682669787908_0.15895862003604444","host":"s3://npm-registry-packages"}},"3.3.0-beta.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-beta.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-beta.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alexander.kasten@5minds.de"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"e618bc96bb7e55435e5c666a2e83e44629222691","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-beta.2.tgz","fileCount":1068,"integrity":"sha512-KknUs9ddV86L3MUf+GfFdfzCBC/MH5ZPJSDY+Y6pYO/zA55ayjtBsEqgPDXCqweyJbyqBcBx5OqLcuhy6/xKGQ==","signatures":[{"sig":"MEUCIH7BCtyzRidlPrR2PAN1+DUlRiBL4qi1bPnrbAf+StrtAiEAmPa8Za6BFsWTFjcJBqBTfI43XJSA1nDwFkCgwgSJDWQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1110351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkS4EvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmotsA/+PmvIkfks6LFc02EMutbNemMLM+NGqWLbRwfRwD+2b/3AqgsX\r\nLRl6W2HDI8mqTrGgpK+ohSt+LUkIl7fj97q3CBsH852vM6FnKlxou5k08W8p\r\nOMRcfDRlCImV7Q4Llflf3DTsuoVeHIgyl40lT3xJ+Hay/pXYD70LWYJjp4y/\r\nl4IxwaYWFC7IZ7B3ZS1bV0m3+8NJMpC8X8WagUHRrk5yp1ZsnonG+4yMdLXl\r\nSmwuseddtGHDsbbBf9zYXd7cRO87dGbKE3CavKI/lBsdJvlqbOpkK1GeayqM\r\nec7MSNWurgKF4fuoAmJAPLCHW0L5398K4tZ05aHT5ZFrvBFjoz0PkaeHHdAs\r\nVIjU0xAZt3GtMvwrNYRcvS4MCdKP0Wsww6HPFYbrXIfFU9/QwAmceSOnQNuU\r\nSSPx2kjfMDJRmit+/Gmt+v9t1TiXoF2vciqKzH44C4qrtncwaBZxsN+6CrpT\r\nSY/CGSV2wtBADF5/4oXVQ07MB6ImKuwGN5fk55vKWZRXV5put4XGmmfrQVeg\r\naZPGBAZQVl6quncQGakMbsvouBOdkYFeajEQti4htEMWvogAP/P1R2z8r1bO\r\naJyQwIL3+qwUFl5A0A+AU4efCHn+tkPmyJDFuv9pDvF2RBSOIGPbSf12cZ7V\r\nDnV71TBQqahZeH+f8QFxZH+6T4zjf1YADX0=\r\n=rUnf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"300dd7b5438ea6daf4fa4e88f4da3dbafdb55c41","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-beta.2_1682669870784_0.7861191164286929","host":"s3://npm-registry-packages"}},"3.3.0-feature-6d6ae5-lhi054vg":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-6d6ae5-lhi054vg","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-6d6ae5-lhi054vg","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ccf1065fa94751499bbecfbec77d8e1a254972f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-6d6ae5-lhi054vg.tgz","fileCount":1068,"integrity":"sha512-6XnWC6Mjr1SVDmLkZQW617kEFEcezO6n3yKTQGdPbKuUa3Sfbv9fWiGf5tDFUOBbKv5zoyr11tdtU8Wv6RyZ+Q==","signatures":[{"sig":"MEUCIQCBurHNWRjlMjpz1JVCND1cg0CyvgMcLKHgsC6IFke+5wIgf3F0W/KpqaRCqXyS+LuUfmjW5NPmRHgI6+Ysmgb2x10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1177054},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"6d6ae5ba91a3223351fdc93146e3e87cab02de02","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^4.4.2","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-6d6ae5-lhi054vg_1683741488538_0.6663665639333367","host":"s3://npm-registry-packages"}},"3.3.0-feature-ab80f3-lhkbm4w6":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-ab80f3-lhkbm4w6","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-ab80f3-lhkbm4w6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"6a3c2199bfa94a8860cd6b0272b8e1c36333b9c3","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-ab80f3-lhkbm4w6.tgz","fileCount":1068,"integrity":"sha512-UEBXsfvsSty1xkSjul1Js90I9728yvQ3wWbwlwi9wi5Q83gDo3LoE6EoANwg3A0wyIFj1x2HiA8DzsfSD2Co4A==","signatures":[{"sig":"MEQCIHCv3pq7jtUBCzpk0oVu2g/7y4Ayf0R0nZohulVcx1pUAiBugyTp9xc96nJfLm7GOc4zCo43gHKUuyJ+5OdnptZGhA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1175926},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"ab80f3f7f6d70130c5049f46ce768a2825e0be40","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-ab80f3-lhkbm4w6_1683881684954_0.5146556597634799","host":"s3://npm-registry-packages"}},"3.3.0-feature-2d410a-lhpwxow9":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-2d410a-lhpwxow9","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-2d410a-lhpwxow9","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"12f90bccf48e4b5f0cb5a9f3af6c8a890bfb77ed","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-2d410a-lhpwxow9.tgz","fileCount":1068,"integrity":"sha512-a+CQj76tlS6tbuAZNQLmhhfcaOpm2BEt1kjw7qP+2OtoBCSiiqVo0pGWLCJ8k/pR0m80YDAXqvSzkedG+uTRsw==","signatures":[{"sig":"MEQCIHRboGzrEzTjG/0oIIyv9+uRX9EA6oeuiJPX/YA8Gzr8AiB/hn/3kbMRxnnWFAlMA1z/BakFWWxhgP2zs7MRCzaLww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1178666},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"2d410a4405897f8af05f3e16df203c5bf29c469d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-2d410a-lhpwxow9_1684219802481_0.2362976408838291","host":"s3://npm-registry-packages"}},"3.3.0-feature-546aaf-lhpwygjr":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-546aaf-lhpwygjr","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-546aaf-lhpwygjr","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"829dddb9bf9531dbe9c47141ba673fbf6598ed12","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-546aaf-lhpwygjr.tgz","fileCount":1068,"integrity":"sha512-B0TOVBM6NOw+efACsx6/ptor3RqQUSQ6hFDTPSXiASGCpvSZoDVjJJdfsnoDuovzVskL0cs+4rKSLwE8m07RjA==","signatures":[{"sig":"MEQCIGOnkD/yl32YT2H606hnbgRRM/zB6nzWgfkvE/oh1ia6AiBNr0SDfp0up+b4zinc6CaPRvSXDKC2i3rgZX8LfQaaOA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1178643},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"546aaf5bb79863b085f1c313d68d286ebc163465","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-546aaf-lhpwygjr_1684219843715_0.5301745176239958","host":"s3://npm-registry-packages"}},"3.3.0-feature-999b7d-lhpzn47k":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-999b7d-lhpzn47k","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-999b7d-lhpzn47k","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f7dea2a31579013bc4afc37c13f2aa7e7225639c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-999b7d-lhpzn47k.tgz","fileCount":1068,"integrity":"sha512-MC3X8+VIIgvxdnFh3I8xT8CQXWv41HAlRbBHj2VHdkyd7t9xlpnRhd+JcVOD8cHa/KFPscuEyUeKKWqBTUHgEA==","signatures":[{"sig":"MEYCIQD2bOKvRneP5wUU7Oojyr/48llhgu037dg5k/TN1LNfkwIhAOkrRThTrxRyleLgMbMxtIhpXiPwXVegEfDAACKV4bSD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179496},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"999b7dc71e90bd7067e2b2c26eb369d2607faee0","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-999b7d-lhpzn47k_1684224366587_0.4610404543989082","host":"s3://npm-registry-packages"}},"3.3.0-feature-2d410a-lhq0c4k7":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-2d410a-lhq0c4k7","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-2d410a-lhq0c4k7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"11a04d559abfc1715d9de828f11b2ee216ceb5f1","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-2d410a-lhq0c4k7.tgz","fileCount":1068,"integrity":"sha512-N7wi6m6nPRWKNXmBDASYQtYHOmyCx0ttXGHLlb8HlvpqisICqIUT69eQu+41evZZoKT8QnBaFizomPUV4zwE4w==","signatures":[{"sig":"MEUCIBCzKljvZf3lLahnK8DF+gIYaGlP9IkXW20fDx6f7yInAiEApmg0Z7pzrdMAgZI87LHFf5grNxGbrde6wa+9CQDjtYM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1178666},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"2d410a4405897f8af05f3e16df203c5bf29c469d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-2d410a-lhq0c4k7_1684225516902_0.1604829439618911","host":"s3://npm-registry-packages"}},"3.3.0-feature-999b7d-lhq0lf4e":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-999b7d-lhq0lf4e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-999b7d-lhq0lf4e","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7ab50d2f9b0438fca36627ed20051e96e3f237bd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-999b7d-lhq0lf4e.tgz","fileCount":1068,"integrity":"sha512-6GFnOqcafM3GnVG60TA/5N8ecNqduoSqWp4WUN9lQs6zs0EX7xwsQ4XC4a8c4MjHwFoQ6sHa39SjnpROZ5KvmA==","signatures":[{"sig":"MEQCIBS4ZK/BdIj0mRKaYeQYC2sEclozUafHT3Vc5rWOSzkfAiADKNj2wTPoBfusBGG1wtl9099ZyumN4HfYk5kN/Y/6vw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179496},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"999b7dc71e90bd7067e2b2c26eb369d2607faee0","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-999b7d-lhq0lf4e_1684225949343_0.18384742209667304","host":"s3://npm-registry-packages"}},"3.3.0-feature-63aca2-lhq16lvs":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-63aca2-lhq16lvs","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-63aca2-lhq16lvs","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"c40cf311679fbb3c1a300930138bc114adaec691","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-63aca2-lhq16lvs.tgz","fileCount":1068,"integrity":"sha512-I97qZHTXqb8aLJuZAuwtNUnPxNPJcHtsnxrc+68G2w1Yn463QWp2meBX5vWRlUOj4bamSK4JY1irNPKNlLCYmQ==","signatures":[{"sig":"MEUCIQCZcJmBx4B7mIVi/7UpWKemny65U/gQox35d1QaDKoO1AIgKY4XxvkMdLr/rgfoMLOv87tu/FraHHWAxXSjgwpJQBM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179496},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"63aca23b2927818e88a0f28287ad55151434398a","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-63aca2-lhq16lvs_1684226937926_0.8889043954577935","host":"s3://npm-registry-packages"}},"3.3.0-feature-7d9bcd-lhrg3xhw":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-feature-7d9bcd-lhrg3xhw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-feature-7d9bcd-lhrg3xhw","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"757d266e76dc3ad03d0ad2f2b8ff79f27d3e2601","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-feature-7d9bcd-lhrg3xhw.tgz","fileCount":1068,"integrity":"sha512-huzxcGmleOxkDESKCMFK3JwM5RdWfP6o+dhDLCN0pFgB7aNLSDUEBGpYZUHtmaLH6+yWlQfTgrPEHLomjYmOVg==","signatures":[{"sig":"MEUCIQCs5VtpuE5mmM171FK1exVeH0UvTimtZIbSMoRIYnkA8wIgUUJTJ/FJvatYAERMdgtWD7m1/nPbRyiebgl+AFFda5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"7d9bcd6e01eacf864c962c7cd38dbdc6665c4ca9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-feature-7d9bcd-lhrg3xhw_1684312473910_0.41336438563366307","host":"s3://npm-registry-packages"}},"3.3.0-develop-47af98-lhru6nts":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-47af98-lhru6nts","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-47af98-lhru6nts","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"992e033e6bf34dfcc6583041993b8c61b347b172","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-47af98-lhru6nts.tgz","fileCount":1068,"integrity":"sha512-MQ/3pwhv36YvZB07L9KHsggH7ZBH5ZZvhAPBUsxJETGNkMPM3kZuBYAGbrI7XIxGIb2SBk3JpzW8C74OXzfMOQ==","signatures":[{"sig":"MEUCIEac1EIxzmFSVlKBj1y8cJryNKEIBExd/1ba8RucFM8KAiEAioiRoOXbZ0RbE101Or8EMIxKBw1W93JMXJ5iKEGOFN4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"47af988db0937da323a1f50a7c4a56da93b63334","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-47af98-lhru6nts_1684336149839_0.3473926114831667","host":"s3://npm-registry-packages"}},"3.3.0-beta.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-beta.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-beta.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"80cf87d2e9ea0901c5edcdea60a630e829eb1dd8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-beta.3.tgz","fileCount":1068,"integrity":"sha512-MtXgO6lmBA9Bte7JM+D2GVGgpgWzjnydAIOPdg+YOODsYUK4gQ96gwIRRslhmQPSX1lEeoVoWMkCwOgYOVb2OQ==","signatures":[{"sig":"MEUCICADeMp4yqQXpjSZOVb4SbMGQ1v29BXcCqV1ov4wwq4SAiEAxkZ2AbzHhZgXGBIbQD+UrXpjKUvmTNpHDoCkZ6ecJaI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179519},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"95e004f16bf9b4a00212993a596310d7d2db829c","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-beta.3_1684481135846_0.8969954542118876","host":"s3://npm-registry-packages"}},"3.3.0-develop-72b83a-li1e0i7r":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-72b83a-li1e0i7r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-72b83a-li1e0i7r","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"b360b6217841e7567c177e2f73a948c38de48fb8","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-72b83a-li1e0i7r.tgz","fileCount":1068,"integrity":"sha512-PG1PiWCoNfyyNwDRgIxm5uqMibU0kE1QoxYCT0dXubMBUQMelnz/iBW2lRK8jJmYUkh5oR7Jr8PgWuHaEM4KPQ==","signatures":[{"sig":"MEQCIDWdx5paytCNzdIdrn+IYtFeFedQ2DKH8drKwM6MTsSLAiAkDmINMjXvQz60mExLLW1dqF/AOQunEK7L5+oHg9J2mA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"72b83a54ecbd88b8f62ac202e9b9722a8ef93dbc","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-72b83a-li1e0i7r_1684913654822_0.7677424567120097","host":"s3://npm-registry-packages"}},"3.3.0-develop-36baa3-li1e1cs3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-36baa3-li1e1cs3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-36baa3-li1e1cs3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"32b36cfbc1aca43af0e35b5d778ac45378ade137","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-36baa3-li1e1cs3.tgz","fileCount":1068,"integrity":"sha512-lZMzipNh9MXTSq4I6YkGskyXbIpkb5Hfle92nD1oGzTtdL4h7zFJDxoJbib1fYzQCUtHrzSUBZW45GRlSOJRig==","signatures":[{"sig":"MEYCIQCgKa85zmsJ3XxtMznSuEtnjogfdchUK5LDmq0NGiW5CQIhANQ/R5Qvh6a6ztVOWdrryP98wtCIL4123X12/nw2KTz0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"36baa36b9b223a13de6cce3fefbbf0246e141bc4","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-36baa3-li1e1cs3_1684913684624_0.41195972755831267","host":"s3://npm-registry-packages"}},"3.3.0-beta.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-beta.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-beta.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9cef66f5d47854dd1e38c70ad2ce8002820d534c","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-beta.4.tgz","fileCount":1068,"integrity":"sha512-5CTSwj2q5q4ZKM861aIIv+IqSTpP3LIK1eCPYw/Ec1fg6hvUdt7yuOCiXpcoXUCFByZys7HZrfB4dlj0tDmSYg==","signatures":[{"sig":"MEUCIQCYpyjXxV0JaPBRyXNygvWKL3rsXr2bfj6JnLW8IR1xzwIgDtL3nsr14FLDsS0uNX8JpgqjnNHN0AlAuzcgaSdQzEU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179519},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"d39ec0d972bfa7451dafa550691df2db19d8931d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"8.19.4","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-beta.4_1685024721318_0.3082480169831283","host":"s3://npm-registry-packages"}},"3.3.0-develop-3b8db4-li38ac0m":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0-develop-3b8db4-li38ac0m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0-develop-3b8db4-li38ac0m","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"7b362c97d633b1e5552cd8585072ab380fec6b59","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0-develop-3b8db4-li38ac0m.tgz","fileCount":1068,"integrity":"sha512-IgSCB1xDAtoUdFqhd5I0SlI00zDz/9vSlzND3nEp/AK6jRoV+eionlzxFnENFBYofy8QuMRVwm6tsTWMciMOnw==","signatures":[{"sig":"MEUCIDWiFlKBiL7jtoOBeUVA1Ed3UM21eALXoBfI2SUpo2mcAiEA71Lg9y4MdsYM4Idasug6gYIQzwtZ1QDsXsdUFhhVYX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"3b8db42b6f44292db31ef3fe6d52efbc6305aee6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0-develop-3b8db4-li38ac0m_1685024929560_0.21939633710066153","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5d9c5889b675f281b1e1d6b8546f1f970fa85768","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.0.tgz","fileCount":1068,"integrity":"sha512-lWVxk633FLmjyUxpjtz9JhbiZo7KUd0vE2ZArsr8D8vwSG+AmwNRn4UKWrPRSeeuL8y7aa7D5sgePT9q+O2Iaw==","signatures":[{"sig":"MEQCIFBJ74shkY4XIEt+Woq2h4zUdxCd2AS2oHdWGKynJFibAiBXmmgNMnR0qV4b8CrOg44Ze/CAziyWCzGlQDZwubD/5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179512},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"426ccf973be652782938bfa8a29e3b4532f0aba2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.0_1685437205930_0.9920027517252823","host":"s3://npm-registry-packages"}},"3.4.0-alpha.1":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-alpha.1","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-alpha.1","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"2caf700129b8ec5ce8327d6f5454717a8886900e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-alpha.1.tgz","fileCount":1068,"integrity":"sha512-xB31tdWxXK+dWJ/SgA4CqFhdsHK/aw5mtM1xYlG/kEMCYc0ceo6v6io6zfRRPIOGjvLCMoW/xYSZEeEmUuZ8hw==","signatures":[{"sig":"MEUCIDlA1iTBfMgxtx/ammPbk/N5qLygDXs/cBrzTCU+PgZ8AiEAplnTzVn91Qz10tYLe+Q37BBm1Gl1orGK7mRcshZ+/gM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179520},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"9bdddebc4a2df2085884e331732bddb2a1262ae2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-alpha.1_1685437908902_0.4990968038859387","host":"s3://npm-registry-packages"}},"3.4.0-develop-61bc3b-lia269ca":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-develop-61bc3b-lia269ca","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-develop-61bc3b-lia269ca","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"1ad08248382a4b94ef691b4eb8784243bc40da57","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-develop-61bc3b-lia269ca.tgz","fileCount":1068,"integrity":"sha512-lJhVjAAfs9pl/V871bQWPnqncfR+eUfYSP8wJc2yAsUTc21aEabwzZAmeNrzNVYxbDyNmXFMd65nvqcF+hFZLg==","signatures":[{"sig":"MEQCIGGamJsIgJPrkAkHWHpCy1qFeRttKrt5+FlHCSArJaQHAiA2M5fZahszy0MbzA8ykgKOS+L75sznF6s1V1l/CDxK8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"61bc3b6a8d197959c7d073cd072c24da73f6d696","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-develop-61bc3b-lia269ca_1685437952270_0.2556738614097258","host":"s3://npm-registry-packages"}},"3.4.0-develop-6ee175-lity0iuq":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-develop-6ee175-lity0iuq","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-develop-6ee175-lity0iuq","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9451aa7c029d74793026ca4adaa328a0dbf08d75","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-develop-6ee175-lity0iuq.tgz","fileCount":1068,"integrity":"sha512-1EgTTd0LpeVFgblFiCwvOyGB4V3FMeNBdCGeM36aBQsH/TdATDXlxAzt8g/ghBiSjde1lT4OrmKtfeOmFkc9iQ==","signatures":[{"sig":"MEYCIQC6bw50hHUWMq7VjVguXtoeNfc2MzllJpioW9IMu/RcogIhAOiZFI1fF+VyXXXaPtcH5rQoZ+SFU8mavmbBOdLrUnzE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"6ee175fad8425807aa3d6fb30bfa76a2c73f18a8","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-develop-6ee175-lity0iuq_1686640260264_0.4870505651909516","host":"s3://npm-registry-packages"}},"3.4.0-develop-fd6c73-lity216m":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-develop-fd6c73-lity216m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-develop-fd6c73-lity216m","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"61bff137c6682901ac56a735fb8abd9b8c43bc4e","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-develop-fd6c73-lity216m.tgz","fileCount":1068,"integrity":"sha512-JbEVZ+KcnO+Fo4qZmOv3qcTIU80muHjPV1ncBOe+Ua7StbPURtBo+ILjUacmWw3CG52nXX9tSf6SnSzQotRepg==","signatures":[{"sig":"MEQCIEw50isir/qdrt0q359p8OaU+MP5zzK0abXHIV3wL06zAiB/4CwRhtpNO26sG5ee2eCTfZi+TENZ+tvCXCSjK7mABw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179536},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"fd6c73f458c9934332367fa3b39b41a8e878c3fc","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"14.2.6"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-develop-fd6c73-lity216m_1686640361584_0.20787397913111638","host":"s3://npm-registry-packages"}},"3.4.0-develop-ea9fcd-liu52rwo":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-develop-ea9fcd-liu52rwo","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-develop-ea9fcd-liu52rwo","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"rrrene","email":"rf@bamaru.de"},{"name":"steffen982","email":"Steffenknaup@hotmail.de"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"fvanbraak","email":"frank.vanbraak@5minds.de"},{"name":"lukas.huerter","email":"lukas.huerter@5minds.de"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"3052ea05ed738f48bea905d8c616096f774c3ebe","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-develop-ea9fcd-liu52rwo.tgz","fileCount":1068,"integrity":"sha512-+qiNiCh7ObtPAjXLEA0DfxkK2cMWJpKiCXRyJUKf3h98qKcXAPJbmjq5slqNWo62oeJOgmvM30clwIBXd69opg==","signatures":[{"sig":"MEQCIA2HEuOg3j87L8+yfp6IXtzoAzVIE/eMCqNMmvQR219YAiA2e4lTDNTG5amWpm8vIDS6CYW0VYSTw7MIX46B0oM8tA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179399},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @atlas-engine/atlas_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@atlas-engine/atlas_engine_sdk\": \"^3.3.0\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@atlas-engine/atlas_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/AtlasEngine)\n","gitHead":"ea9fcd67efbc1c524cf359bd2e9131b68251bce1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.5.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^18.16.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-develop-ea9fcd-liu52rwo_1686652132880_0.4203928533840253","host":"s3://npm-registry-packages"}},"3.3.2-hotfix-5e5851-ll1zhz20":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2-hotfix-5e5851-ll1zhz20","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2-hotfix-5e5851-ll1zhz20","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"8a16c1af0dc2ffe33f9910404e5ef45d9dde7058","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2-hotfix-5e5851-ll1zhz20.tgz","fileCount":1068,"integrity":"sha512-2QCE2X5488oQSh76N0E8YUglnBKCpvyYbPvh8wkPAx3IniiKvi5Z/o93WQFPKu3NEGIR64KhTpzliEbOqMSyHA==","signatures":[{"sig":"MEUCIBAUYlnAXRMHmFNABktm4jgOUdAR2WbIjilwjMVKS/TEAiEAugJHldjmAH1r0eG3oIXCKhCXumiWKI9JhtAHKaMNqDc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1181742},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"5e5851c9e60a2e6b55aaa2cc40b2f9b9c9bfcf3f","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2-hotfix-5e5851-ll1zhz20_1691480060764_0.10617450680460383","host":"s3://npm-registry-packages"}},"3.3.2-hotfix-45145c-ll6eox3r":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2-hotfix-45145c-ll6eox3r","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2-hotfix-45145c-ll6eox3r","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"a1a2a67cd17ae1fc32d327444bbfc088126d10cd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2-hotfix-45145c-ll6eox3r.tgz","fileCount":1068,"integrity":"sha512-0j+wJdPYyKi17pDuo+uLJLpjQKa7eOwDsQ85vLkh7GFsaYsSVJ82q/COEvhaZpZOuaQq9FvmUK/VVxCbHnWwZw==","signatures":[{"sig":"MEUCIEjQcK5yyORbjsHZbMSpR92TCMoWBZlskwtgRr4cqMLlAiEA+e89lCt/D7FfMw2LjG4NdBU2fYW5i57vuaRwf+Y1vUs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1179533},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"45145c9ab0492403dba5149ebcd83b2ad4405dff","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2-hotfix-45145c-ll6eox3r_1691747436944_0.9049594718434419","host":"s3://npm-registry-packages"}},"3.3.2-hotfix-2db911-ll6eu3th":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2-hotfix-2db911-ll6eu3th","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2-hotfix-2db911-ll6eu3th","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"cf6d9bbf229e7fa8d02fdec862eb2754542732fd","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2-hotfix-2db911-ll6eu3th.tgz","fileCount":1068,"integrity":"sha512-lnzM7YBAstMrpexrtoPwIpX07uXMLzmx2SO6EEBxYSoHyW4feY7xBZKKuV+5uopO0a9v0Wg3IlQZlO0zDfo54Q==","signatures":[{"sig":"MEYCIQCQgxbda03fUko2BoLLJOUd/iIkQLju4srHHqKpYxzi6QIhAIV8NCzi4x9h41U/iYRoBzWc+b9EKxjpuMiME41MwRnj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1181742},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"2db9118560f365f98c6d7b18171363bccd565642","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2-hotfix-2db911-ll6eu3th_1691747695809_0.7845241511278063","host":"s3://npm-registry-packages"}},"3.3.2-patch-5b0ca3-ll6ey381":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2-patch-5b0ca3-ll6ey381","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2-patch-5b0ca3-ll6ey381","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f0f453dc0bcc1d0971bc7fba2cab50dac10c945f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2-patch-5b0ca3-ll6ey381.tgz","fileCount":1068,"integrity":"sha512-KLypTyYh3Q1rZEweNRFzT2QAGI5veULnhysct+6MSImOPRkddgm90H3L+GWd2XiFcHY5ckYSLdxh1LZp0ocxiA==","signatures":[{"sig":"MEQCIByC5JnekTmrryT/Ucr7kttOKD9aJDrv6QPnBqtg68PiAiAhytO6bbY4f8FJtpIxVV7sDgHn+NODoeUo4S5A72vnWQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1180071},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"5b0ca32fbf31520e4bb27cb6d99b5be7c7a2528d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2-patch-5b0ca3-ll6ey381_1691747883202_0.27708027472081076","host":"s3://npm-registry-packages"}},"3.3.2-hotfix-54ef7e-llaujn4m":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2-hotfix-54ef7e-llaujn4m","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2-hotfix-54ef7e-llaujn4m","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"98a2c17e67773215d48843cbc6a9115f2480f8e0","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2-hotfix-54ef7e-llaujn4m.tgz","fileCount":1068,"integrity":"sha512-JYFXB6tvXfxBrxbXXfKysF1NDtghpVq+SMs5gyTLrlf8HH4D4kLKOWBont0PVHrAb757+GiF/h9IOmRva512gQ==","signatures":[{"sig":"MEQCICRw4Qr7lYJWmHIWKGlXv1jp0sXMZ+b9jaUR/Rtdeq9QAiB3gC3M5r+TIM6TPCzaD71TGPNAesElg9x0TDLjntLyUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1180072},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"54ef7e5cb63902870e6edddb346f776515cf2664","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2-hotfix-54ef7e-llaujn4m_1692015955375_0.1563205279511879","host":"s3://npm-registry-packages"}},"3.3.2-hotfix-5a9708-llc45axh":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2-hotfix-5a9708-llc45axh","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2-hotfix-5a9708-llc45axh","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"4f74419b003ca14b1b6d4a19cbbe52a110e2d358","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2-hotfix-5a9708-llc45axh.tgz","fileCount":1068,"integrity":"sha512-eNR9LdLTHnLD6wnkTinwmaUYqY8wbyuR8EnYXtDNQv4CreRsJ9xYYK0JUmjY1Gwcfd9GcmuiFIRPliZ/tn+J/w==","signatures":[{"sig":"MEUCIAyi40fFp/z2jUHc8a8beQZtnKnXi5NdeXDNpmAb0YxMAiEAkVXc/S8jImvLtx+/kPeFRot0Vx5uDkZ5EUH63oM+Dlo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1182281},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"5a9708ad1b5c491876ff1b6bad97e35022edb9c6","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2-hotfix-5a9708-llc45axh_1692092523578_0.07717001182070882","host":"s3://npm-registry-packages"}},"3.3.2":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.2","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.2","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5169a5b48ab58aedaa6180fe83cda4ab8d943a63","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.2.tgz","fileCount":1068,"integrity":"sha512-WCQ7S5v5uAQaNJueIgnxs+GsSr7maiNa6fBz2qOfS/b6EiIVSbHEqxBcOROEDXO+4hl4qbG8BLLgYL8Hp8iSMA==","signatures":[{"sig":"MEUCIQCJfac3fzb5l4Xe0L+yrEBZSM4R2VITjspoyLZ7Yd0ZowIgPJRSHCkjFtIGXL7R+JL1CJi2Brn2q+ZwDOV7aTTt5C4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1182258},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"7369071fb461b823baaca577e1f294c9a773b4f1","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.2_1692115833092_0.7859726517510248","host":"s3://npm-registry-packages"}},"3.3.3-feature-4f1709-llkn84ts":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.3-feature-4f1709-llkn84ts","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.3-feature-4f1709-llkn84ts","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"98e152c06d2b733809fd792f3bd55e8855fa4056","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.3-feature-4f1709-llkn84ts.tgz","fileCount":1068,"integrity":"sha512-xVa92N85TDsT0wUFx8JvUuXZfRVp/lyEmo6EsFOF0w57YZy3oX75eYz+TslkPAnOuRTuCayLxZCI+F4tk00MGQ==","signatures":[{"sig":"MEUCIH89zd2S04yUJZIIprxFvPQfkuuYyu3HuffjSNIIRMhQAiEA+ezc8+iScvZZ69KFkJZ6pIBFD4LgGM8tbrXTXKBAzbM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1182938},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"4f1709bdc69469fe8700f67060a78dce80aede26","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.3-feature-4f1709-llkn84ts_1692608302567_0.737988027237183","host":"s3://npm-registry-packages"}},"3.3.3-feature-b69df4-llkqfucc":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.3-feature-b69df4-llkqfucc","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.3-feature-b69df4-llkqfucc","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"90264dcb3ac926d0041138f585c57322279cddff","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.3-feature-b69df4-llkqfucc.tgz","fileCount":1068,"integrity":"sha512-QUUjKpdl4SbB2dyoKHJerye6F6pNBUp24DZIw1hXzNFD1uhkxihP6b9xnsoQOHQxzxl5GPI5gJhUmc/7OuCkwA==","signatures":[{"sig":"MEUCIQDXV+E/RzTB6fk21OJE04moj6HpioNBRRpibkUYhSBXswIgJ7jIieYg/Y6hyuXRIlOQOQGo01RKANooGI/gji9f0fg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1183025},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"b69df467f24b871b95c3295cb0ff79db2a5e52a9","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.3-feature-b69df4-llkqfucc_1692613732855_0.046731169153536145","host":"s3://npm-registry-packages"}},"3.3.3-feature-1d9bb4-llm9dzvw":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.3-feature-1d9bb4-llm9dzvw","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.3-feature-1d9bb4-llm9dzvw","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"51272df6575d78d350748c4773b34c1cfa14604a","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.3-feature-1d9bb4-llm9dzvw.tgz","fileCount":1068,"integrity":"sha512-LQpLpf+iHF00hI34EtY1wVJUFHiTpZvi2ZdNeRpd+GDkvB8K8s8sd4u1cP5Dss5foqPbbvqDPbU212m1b9ElGQ==","signatures":[{"sig":"MEUCIDagh6TxCdZk522wmPcTvFtXycobzyYjKA+lVOZOGL2qAiEA+YpeffVR4zN5GjShyK32QJlhhTG+gXCn0Mi7xvkjqZ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1183025},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"1d9bb49bad063858218e1b4c5c1056f78dc3dbb2","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.3-feature-1d9bb4-llm9dzvw_1692705991068_0.04661089275483721","host":"s3://npm-registry-packages"}},"3.3.3":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.3","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.3","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"5bcb267fb35186245c86e30ebb558418104bcb81","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.3.tgz","fileCount":1068,"integrity":"sha512-AO8NXi1mk9Sv96rUnDmOLIXaANM6enfV651UzLzyY+zaQysJensOCbngAAaCqck9OmCAxBRmlZmg+mp483Q2Pw==","signatures":[{"sig":"MEUCICXfcS1d9XjU0R2oAARZylesp/LjeeG0kgOxAhTU6qSRAiEAreAF1VTJUzclCRc8xh+Ihcwi9+opCKW0XHfOFpa1Iik=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1183001},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"81837a8f814e2acca3f53464a1d22ad8af8c2bb3","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.3_1692708031785_0.96341815751063","host":"s3://npm-registry-packages"}},"3.3.4-hotfix-09d073-llz1xw0f":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.4-hotfix-09d073-llz1xw0f","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.4-hotfix-09d073-llz1xw0f","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"f2953ef458a15c914f0d2f31cf502b22bd467126","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.4-hotfix-09d073-llz1xw0f.tgz","fileCount":1068,"integrity":"sha512-axHf1JAM0FouzDY1+WfXa1FwPBnbLtyfnvup7/FeJkvU9jqJ0PhaM/kvyee3ArT3CYkwBEUYhj9YSE+gRg1MBw==","signatures":[{"sig":"MEQCIBkf+0hFh8TXhG/KQzL4aGdW6aKw6JJFjhYtQX2Uuz4GAiBabBETCUhZ/3/g3zUvviqdzScaovCE83D/kBt8glkBlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1183133},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"09d07375bb73dab317510d638d336e23932f0a3d","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","test:smoke":"ts-mocha -t 120000 -p ./tsconfig.json ./test/smoke-test-sample.spec.ts","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","inversify":"6.0.1","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@atlas-engine/fullstack_server":"15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.4-hotfix-09d073-llz1xw0f_1693479556204_0.6439830936398001","host":"s3://npm-registry-packages"}},"3.3.4-hotfix-ea5bc4-llz2bd0e":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.4-hotfix-ea5bc4-llz2bd0e","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.4-hotfix-ea5bc4-llz2bd0e","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"82acc92562063f2af4caac638f0b6aa756154128","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.4-hotfix-ea5bc4-llz2bd0e.tgz","fileCount":1068,"integrity":"sha512-sFIGtk3uDk70z3iogJFdJbHGP2ZDw7ql2boswa/ke7CY4bgypTLyDGHz3iahXdPhN/tLv95Lo6s28X3ECcmE7g==","signatures":[{"sig":"MEUCIFD8ZmdNw5I/mE3zJZI+kVItQopwjiJ7QDcOKCE3Ivt5AiEAy5vuy2JcCgJROKffUyvEk81IAJY4tWpH9zNCxczd45Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1181382},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"ea5bc44360c7424c5ab32fb17d7691e4590678c3","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@types/express":"^4.17.17","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.4-hotfix-ea5bc4-llz2bd0e_1693480123661_0.6632387289823305","host":"s3://npm-registry-packages"}},"3.3.4":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.3.4","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.3.4","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"9ae111100baf6adcb156d21480f59463c0ec6a61","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.3.4.tgz","fileCount":1068,"integrity":"sha512-M1H0IEAK87n7psPT7JBr/5H2mhpa9R744WO1GyMlAKli6NSVisywn6ftiyi3rkB6CtJ8ytd3tvue4Xqw/trscA==","signatures":[{"sig":"MEUCIQDB7Xdo3/clt77nSxO5irHYd5VJXTvPtGxZBoeyyO522AIgftDoCYpAkl3XO7fJ9fdRIOZy2m/8jRUvZnTO48komtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1181359},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","gitHead":"c81505a6d0c1761261506dc1c58f2dc7412ec552","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.6.7","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@types/express":"^4.17.17","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.3.4_1693829235569_0.45842943909051503","host":"s3://npm-registry-packages"}},"3.4.0-release-0c0aa5-loina0d0":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-release-0c0aa5-loina0d0","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-release-0c0aa5-loina0d0","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"250a5a2c9ccb4ef288b7cb91e4ef5dd53a2e5993","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-release-0c0aa5-loina0d0.tgz","fileCount":1068,"integrity":"sha512-pIKZ2pxTVioEJ3R3L5Do34h0/YZp9MGqO6EdlFrFwgoJSH7at/8wqgNKvIPjzCNcpTtlY64mDUX4rJdCQVRH8w==","signatures":[{"sig":"MEUCIDr4OI99Hon5gVzRsOAXKhRAZanS58WBjdnWtgT2psYQAiEAmEHntm9MQz81jp2XJUX+d3ZeS1aASa08hoI/rm8xljs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1181383},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"0c0aa5f88fa2a533f8705582fc62947e2b6774fd","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.8.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@types/express":"^4.17.17","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-release-0c0aa5-loina0d0_1699017754896_0.0336146857841777","host":"s3://npm-registry-packages"}},"3.4.0-feature-018a32-loinb08v":{"name":"@atlas-engine/atlas_engine_sdk","version":"3.4.0-feature-018a32-loinb08v","author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","_id":"@atlas-engine/atlas_engine_sdk@3.4.0-feature-018a32-loinb08v","maintainers":[{"name":"developers5minds","email":"developers+npm@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"obivarg","email":"christian.werner@5minds.de"},{"name":"alexanderkasten","email":"alex@kasten.pw"},{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},{"name":"s3bastiangriesa5minds","email":"sebastian.griesa@5minds.de"}],"homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"dist":{"shasum":"0d341990dc496e2c44c9b845929e1d37f03cb47f","tarball":"https://registry.npmjs.org/@atlas-engine/atlas_engine_sdk/-/atlas_engine_sdk-3.4.0-feature-018a32-loinb08v.tgz","fileCount":1068,"integrity":"sha512-HP8QJXywE6Us3m4qfG8Vg9zq+F3io/y4V9e0wbOMyrc9oqHzrbVaPYsjnPkaKjHfdaufautscKlpoLLHy71qxQ==","signatures":[{"sig":"MEQCIFCK0fnNP06cgI9vNoy2NEIkGRa7AkATOCVXHx32jIVLAiB2dB/8zkJJfjUxqmjRCa4zSTD0S8PUAmNg0hzj4umIsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1181890},"main":"dist/commonjs/index.js","types":"dist/index.d.ts","readme":"# Engine SDK\n\nDas Engine SDK stellt Typen und Schnittstellen bereit, um Extensions für die Engine zu entwickeln.\n\n## Verwendung des SDKs\n\nDas SDK kann über npm bezogen werden:\n\n```sh\nnpm i --save @5minds/processcube_engine_sdk\n```\n\nBeispiel:\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\nfunction onEngineEvent(event: EngineEvent): Promise<void> {\n  return Promise.resolve();\n}\n```\n\nUnter [./sample/extension](./sample/extension/README.md) ist eine vollständige Beispiel-Implementierung zu finden.\n\n## Extensions in die Engine einbinden\n\nStandardmäßig werden Extensions aus dem Ordner `${HOME}/.atlas/engine/extensions` geladen. Der Pfad lässt sich mit dem Startup-Parameter\n`--extensionsDir` ändern.\n\nSowohl beim Start über die CLI:\n\n```sh\natlas-engine --extensionsDir '/my/custom/extensions/dir'\n```\n\nAls auch beim Start als embedded Software:\n\n```ts\nawait Engine.launch({\n  extensionsDir: '/my/custom/extensions/dir',\n});\n```\n\n## Aufbau einer Extension\n\nJede zu ladende Extension muss in einem eigenen Unterordner von `extensionsDir` liegen und mindestens eine package.json und eine nach JavaScript\ntranspilierte Einstiegspunkt-Datei enthalten, die in der package.json als `main` angegeben ist.\n\n```sh\ntree -L 2 ${HOME}/.atlas/engine/extensions\n├── extension01\n│   ├── index.js\n│   └── package.json\n└── extension02\n    ├── index.js\n    └── package.json\n```\n\nJede Extension muss mindestens eine eigene package.json mit `name`, `version` und `main` enthalten.\n\n```json\n{\n  \"name\": \"extension01\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"dependencies\": {\n    \"@5minds/processcube_engine_sdk\": \"1.0.0-alpha.3\"\n  }\n}\n```\n\n`main` muss auf eine gültige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.\n\nIn der `main`-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem\n[Engine-Objekt](#Interaktion-mit-der-Altas-Engine) als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,\ndie von einer Extension genutzt werden können.\n\n```ts\nexport const onLoad: OnLoad = (engine: Engine) => {\n  engine.registerEventMiddleware(onEngineEvent);\n};\n```\n\n## Interaktion mit der Altas Engine\n\nDer `Engine` Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.\n\n### registerEventMiddleware\n\n`registerEventMiddleware` erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.\n\nDer hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgeführt.\n\n```ts\nimport { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n}\n```\n\n#### EngineActions\n\nDie Engine erlaubt mittels EngineActions ein Eingreifen in die Prozessausführung.\nEine Middleware kann eine, keine oder mehrere EngineActions zurückgeben, die dann von der Engine nacheinander ausgeführt werden,\nbevor die Prozessausführung fortgesetzt wird.\n\nEine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties,\ndie für die Ausführung der EngineAction benötigt werden.\n\n```ts\nimport { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';\n\nexport const onLoad: OnLoad = (engine: Engine): void => {\n  // Die Funktion `onEngineEvent` wird als Event-Middleware registriert\n  engine.registerEventMiddleware(onEngineEvent);\n};\n\n// Gibt den Typen jedes empfangenen Events auf der Konsole aus\nfunction onEngineEvent(event: EngineEvent): void {\n  console.log(`Received event ${event.eventType}`);\n\n  if (event.eventType === LogEventType.OnFlowNodeExited) {\n    // Gibt die EngineAction 'ModifyTokenPayload' zurück\n    return {\n      id: 'ModifyTokenPayload',\n      tokenPayload: { result: 'token was modified' },\n    };\n  }\n}\n```\n\nFolgende EngineActions werden derzeit unterstützt:\n\n##### ModifyTokenPayload Action\n\nDie `ModifyTokenPayload` Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.\nDaher kann die `ModifyTokenPayload` Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.\nSolche Events fangen immer mit `OnFlowNode` an (bspw.: `OnFlowNodeEntered`).\nSollte eine `ModifyTokenPayload` Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,\nwird die Action nicht ausgeführt und ein Fehler wird gelogt.\n\nEine `ModifyTokenPayload` Action besteht aus 2 Eigenschaften:\n\n1. Die `id`, die immer `ModifyTokenPayload` entspricht\n2. Die `tokenPayload`, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.\n\n```ts\n{\n  id: 'ModifyTokenPayload',\n  tokenPayload: {example: 'token payload'},\n}\n```\n\nWerden mehrere `ModifyTokenPayload` Actions zurückgegeben, überschreibt der letzte TokenPayload immer die Vorherigen.\n\n## Weiterführende Links\n\n- [Engine](https://github.com/atlas-engine/AtlasEngine)\n- [TS Client](https://github.com/atlas-engine/Client.ts)\n","gitHead":"018a3253635c9e929d74f97edf7a848b4eb99b11","scripts":{"build":"npm run build-commonjs && npm run build-amd","clean":"rm -rf dist","prepare":"npm run clean-build","build-amd":"tsc --module amd --outDir ./dist/amd","reinstall":"./reinstall.sh","test:unit":"ts-mocha -p ./tsconfig.json \"./src/**/*.spec.ts\" ./test/**/*.spec.ts --exit","clean-build":"npm run clean && npm run build","build-commonjs":"tsc"},"_npmUser":{"name":"process-engine-ci","email":"ci+npm@process-engine.io"},"deprecated":"This package was renamed to @5minds/processcube_engine_sdk. Please switch as soon as possible.","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"_npmVersion":"9.8.1","description":"Software development kit for the Engine.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"pino":"^6.12.0","dayjs":"^1.11.7","xml2js":"^0.5.0","lodash.clonedeep":"^4.5.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3","ts-mocha":"^10.0.0","typescript":"^5.0.4","@types/node":"^16.11.0","@types/mocha":"^10.0.1","@types/express":"^4.17.17","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/atlas_engine_sdk_3.4.0-feature-018a32-loinb08v_1699017812105_0.00025488060094347453","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-11-18T14:23:36.000Z","modified":"2026-05-20T11:36:28.233Z","1.0.0-alpha.1":"2020-11-18T14:23:36.453Z","1.0.0-feature-14655d-khnhxnmb":"2020-11-18T14:24:01.062Z","1.0.0-feature-c31235-khnigss6":"2020-11-18T14:38:53.248Z","1.0.0-feature-ce17fb-khnin90v":"2020-11-18T14:43:56.218Z","1.0.0-feature-c4bd62-khnjycsz":"2020-11-18T15:20:33.600Z","1.0.0-feature-95bd77-khnjz5dy":"2020-11-18T15:21:09.734Z","1.0.0-feature-51c958-khnkhqr1":"2020-11-18T15:35:38.222Z","1.0.0-feature-33233e-khnpl1ql":"2020-11-18T17:58:46.080Z","1.0.0-feature-12366c-khonva5o":"2020-11-19T09:58:42.958Z","1.0.0-feature-03128b-khoo52j1":"2020-11-19T10:06:00.282Z","1.0.0-feature-63b8b1-khoonp85":"2020-11-19T10:20:46.008Z","1.0.0-feature-ec7512-khoqg1od":"2020-11-19T11:10:49.652Z","1.0.0-feature-25a0fa-khq1z1ck":"2020-11-20T09:21:09.963Z","1.0.0-feature-1bb5ef-khq2ac6h":"2020-11-20T09:29:55.610Z","1.0.0-feature-22f2d5-khq2jmbt":"2020-11-20T09:37:14.329Z","1.0.0-feature-8f95b8-khq2p6a8":"2020-11-20T09:41:28.370Z","1.0.0-feature-b71224-khq2uncl":"2020-11-20T09:45:39.457Z","1.0.0-feature-500cec-khq7ok3f":"2020-11-20T12:00:49.810Z","1.0.0-feature-3cd673-khq7t50j":"2020-11-20T12:04:37.572Z","1.0.0-feature-009370-khq86t6z":"2020-11-20T12:14:57.745Z","1.0.0-feature-104b6b-khq955dk":"2020-11-20T12:41:43.746Z","1.0.0-feature-9cb0c7-khq9xpxy":"2020-11-20T13:04:10.246Z","1.0.0-feature-484c0e-khq9yyen":"2020-11-20T13:04:52.678Z","1.0.0-feature-dd149b-khqa104s":"2020-11-20T13:06:45.719Z","1.0.0-alpha.3":"2020-11-20T13:08:48.257Z","1.0.0-alpha.4":"2020-11-20T13:12:18.673Z","1.0.0-alpha.5":"2020-11-25T13:16:49.699Z","1.0.0-beta.1":"2020-11-25T13:17:03.404Z","1.0.0-beta.2":"2020-11-25T14:46:09.058Z","1.0.0-alpha.6":"2020-11-25T14:46:52.019Z","1.0.0-feature-e09a01-khxlap45":"2020-11-25T15:56:35.202Z","1.0.0-feature-9b9e3d-khymtvk3":"2020-11-26T09:27:17.411Z","1.0.0-feature-cca43b-khyo7qhz":"2020-11-26T10:05:55.563Z","1.0.0-feature-a0bde0-khyokxyg":"2020-11-26T10:15:59.972Z","1.0.0-feature-dd958c-khypuhkz":"2020-11-26T10:51:44.572Z","1.0.0-feature-0d69d3-khypuvjv":"2020-11-26T10:51:56.137Z","1.0.0-feature-c5bc04-khysyqdf":"2020-11-26T12:18:44.286Z","1.0.0-feature-26ea64-khyxcs08":"2020-11-26T14:22:04.003Z","1.0.0-feature-1b8186-khyy94hm":"2020-11-26T14:47:06.158Z","1.0.0-feature-fc7578-khyyv7b2":"2020-11-26T15:04:17.435Z","1.0.0-feature-6fee3a-ki041i0u":"2020-11-27T10:16:51.258Z","1.0.0-feature-c659f4-ki045klo":"2020-11-27T10:20:02.516Z","1.0.0-feature-f749f4-ki067wtz":"2020-11-27T11:17:47.354Z","1.0.0-feature-19ba4c-ki06ui00":"2020-11-27T11:35:18.718Z","1.0.0-beta.3":"2020-11-27T13:24:52.239Z","1.0.0-alpha.7":"2020-11-27T13:25:20.067Z","1.0.0":"2020-12-02T09:27:16.608Z","1.0.0-beta.4":"2020-12-02T09:27:31.482Z","1.0.0-alpha.8":"2020-12-02T09:27:53.397Z","1.1.0-alpha.1":"2020-12-15T09:21:57.093Z","1.1.0-alpha.2":"2020-12-17T17:26:03.694Z","1.1.0-beta.1":"2020-12-17T17:26:16.383Z","1.1.0-feature-44584f-kjk4kki5":"2021-01-05T15:06:45.536Z","1.1.0-feature-28b32a-kjk557jo":"2021-01-05T15:22:55.801Z","1.1.0-feature-bce653-kjl96s4u":"2021-01-06T10:03:42.121Z","1.1.0":"2021-01-06T12:07:28.957Z","1.1.0-feature-660840-kjmmqcc3":"2021-01-07T09:10:44.309Z","1.2.0-feature-ab1530-kjmoo1p0":"2021-01-07T10:04:53.707Z","1.2.0-feature-8767a8-kjmouuao":"2021-01-07T10:10:06.726Z","1.2.0-feature-5bf2e6-kjmowqqs":"2021-01-07T10:11:29.596Z","1.2.0-alpha.1":"2021-01-07T10:21:56.381Z","1.2.0-beta.1":"2021-01-14T11:07:31.152Z","1.2.0-alpha.2":"2021-01-14T11:07:50.127Z","1.2.0-feature-54c475-kjwz4ayy":"2021-01-14T14:55:05.185Z","1.2.0-feature-0c96d7-kjwziq86":"2021-01-14T15:06:21.231Z","1.2.0-feature-9bf51c-kjy00h1k":"2021-01-15T08:07:45.022Z","1.2.0-feature-8ea1f5-kjy146jk":"2021-01-15T08:38:38.781Z","1.2.0-feature-2928fe-kjyaqncc":"2021-01-15T13:08:01.527Z","1.2.0-feature-f55ccd-kjydlnxj":"2021-01-15T14:28:16.460Z","1.2.0-feature-b4a0b9-kjyikk2b":"2021-01-15T16:47:14.906Z","1.2.0-feature-7938ce-kjyin6qp":"2021-01-15T16:49:19.667Z","1.2.0-feature-2c5b95-kk2h7bsc":"2021-01-18T11:20:15.298Z","1.2.0-feature-bcd6f7-kk2hjp4t":"2021-01-18T11:29:38.982Z","1.2.0-feature-c2ae94-kk2ht2sp":"2021-01-18T11:37:01.295Z","1.2.0-alpha.3":"2021-01-18T12:41:05.805Z","1.2.0-beta.2":"2021-01-20T12:08:41.973Z","1.2.0-alpha.4":"2021-01-20T12:08:46.952Z","1.2.0-alpha.5":"2021-01-22T11:01:40.416Z","1.2.0-feature-6682c3-kk8bmfwr":"2021-01-22T13:30:30.425Z","1.2.0-feature-fa7fe3-kkchkcem":"2021-01-25T11:27:55.689Z","1.2.0-feature-54f5a7-kkckecx8":"2021-01-25T12:47:32.297Z","1.2.0-feature-54f5a7-kkmtcp0p":"2021-02-01T16:55:34.316Z","1.2.0-feature-5870ec-kko5h3ij":"2021-02-02T15:22:45.342Z","1.2.0-feature-42285a-kkr2s6wh":"2021-02-04T16:30:51.913Z","1.2.0-feature-146e2d-kks3luq8":"2021-02-05T09:41:29.292Z","1.2.0-feature-42a142-kks9t620":"2021-02-05T12:35:22.379Z","1.2.0-feature-b6ff0b-kksazb36":"2021-02-05T13:08:08.124Z","1.2.0-feature-0c7506-kktxa8l8":"2021-02-06T16:20:01.138Z","1.2.0-feature-aa0a38-kktxzf9t":"2021-02-06T16:39:45.820Z","1.2.0-beta.3":"2021-02-06T16:48:06.660Z","1.2.0-alpha.6":"2021-02-06T16:49:54.871Z","1.2.0-beta.4":"2021-02-11T12:25:23.060Z","1.3.0-alpha.1":"2021-02-11T12:26:47.127Z","1.2.0":"2021-02-11T12:28:35.479Z","1.3.0-feature-26e0ae-kl10ukin":"2021-02-11T15:34:30.079Z","1.3.0-beta.1":"2021-02-17T09:28:07.501Z","1.3.0-alpha.2":"2021-02-17T09:28:47.416Z","1.3.0-feature-054ad3-kl99zzrz":"2021-02-17T10:12:41.838Z","1.3.0-feature-b813c8-klceagi8":"2021-02-19T14:36:05.196Z","1.3.0-feature-3a0b3f-klcehl44":"2021-02-19T14:41:29.989Z","1.3.0-alpha.3":"2021-02-23T10:06:43.815Z","1.3.0-feature-40d175-klkyul6w":"2021-02-25T14:33:52.989Z","1.3.0-beta.2":"2021-02-25T16:09:47.627Z","1.3.0-alpha.4":"2021-02-25T16:10:15.420Z","1.3.0-feature-fdd4b8-kll2usi2":"2021-02-25T16:26:03.089Z","1.3.0-feature-fdd4b8-kll370pc":"2021-02-25T16:35:32.459Z","1.3.0-feature-768811-klmheknr":"2021-02-26T16:00:59.884Z","1.3.0-alpha.5":"2021-02-26T16:04:07.564Z","1.3.0-alpha.6":"2021-03-04T08:35:56.819Z","1.3.0-beta.3":"2021-03-04T09:22:19.581Z","1.3.0-beta.4":"2021-03-12T14:14:18.576Z","1.4.0-alpha.1":"2021-03-12T14:15:29.404Z","1.3.0":"2021-03-12T14:44:05.358Z","1.4.0-feature-5ef4fd-kmajrh9j":"2021-03-15T12:13:31.136Z","1.4.0-feature-ae5f80-kmamg5rv":"2021-03-15T13:28:46.588Z","1.3.0-hotfix-108967-kmc5o9mf":"2021-03-16T15:14:46.309Z","1.3.1-hotfix-73c836-kmeo71pq":"2021-03-18T09:28:41.698Z","1.3.1-hotfixes-393f00-kmgdnlqr":"2021-03-19T14:09:08.994Z","1.3.1-hotfixes-85ee8a-kmgdz7v6":"2021-03-19T14:18:09.384Z","1.3.1-hotfix-f71780-kmgdz2q0":"2021-03-19T14:18:13.508Z","1.3.1-hotfixes-054bbb-kmgipvhj":"2021-03-19T16:30:48.130Z","1.3.1":"2021-03-19T16:30:53.306Z","1.3.1-beta.1":"2021-03-19T16:31:51.830Z","1.4.0-alpha.2":"2021-03-19T16:32:50.580Z","1.4.0-feature-d477a6-kmklyedd":"2021-03-22T13:12:26.028Z","1.3.1-feature-848d50-kmlr8wxh":"2021-03-23T08:28:37.558Z","1.3.1-feature-e850ab-kmlsu0z9":"2021-03-23T09:12:59.850Z","1.3.1-hotfixes-415209-kmlsxrz5":"2021-03-23T09:15:55.352Z","1.4.0-feature-491a9f-kmp9e818":"2021-03-25T19:19:52.924Z","1.4.0-feature-ac0895-kmvtihm9":"2021-03-30T09:29:33.260Z","1.4.0-alpha.3":"2021-03-30T13:43:28.898Z","1.4.0-hotfixes-76785f-kmz4qu7u":"2021-04-01T17:07:27.119Z","1.4.0-hotfixes-779854-kmz5q08d":"2021-04-01T17:34:39.300Z","1.3.2":"2021-04-01T18:04:04.030Z","1.3.2-beta.1":"2021-04-01T18:04:53.696Z","1.3.2-alpha.1":"2021-04-01T18:04:59.566Z","1.3.2-hotfix-995ede-kn8to2hp":"2021-04-08T11:55:02.943Z","1.3.2-feature-e0a97c-kngbfgg8":"2021-04-13T17:46:30.204Z","1.3.2-feature-106a9e-knhcns6q":"2021-04-14T11:08:43.222Z","1.3.2-feature-47dacf-knhi03n7":"2021-04-14T13:38:22.941Z","1.3.2-feature-240d87-knhpznxd":"2021-04-14T17:21:52.883Z","1.3.2-hotfix-113a56-knj7erh9":"2021-04-15T18:17:28.150Z","1.3.2-feature-2ff021-knjz23xf":"2021-04-16T07:11:22.958Z","1.3.2-feature-06e36e-knk2hsju":"2021-04-16T08:47:16.667Z","1.3.3-feature-20a7a1-knkan7xt":"2021-04-16T12:35:41.112Z","1.3.3-feature-191121-knkf9w5z":"2021-04-16T14:45:18.050Z","1.3.2-hotfix-f64619-knoatwcl":"2021-04-19T07:51:56.354Z","1.3.2-hotfix-5cc674-knoc07q4":"2021-04-19T08:24:52.654Z","1.3.2-hotfixes-8feef3-knoccdqy":"2021-04-19T08:34:12.073Z","1.3.2-hotfix-a81ee7-knopqlo0":"2021-04-19T14:49:15.285Z","1.3.2-hotfixes-6a0ade-knopy46v":"2021-04-19T14:55:12.514Z","1.3.3-feature-d6faaa-knouwmgi":"2021-04-19T17:14:00.686Z","1.3.3-feature-79e6de-knq337n0":"2021-04-20T13:50:33.416Z","1.3.3-hotfixes-2ec0fa-knq37ah3":"2021-04-20T13:53:50.373Z","1.3.3":"2021-04-20T19:13:29.974Z","1.3.3-alpha.1":"2021-04-20T19:17:29.097Z","1.3.3-beta.1":"2021-04-20T19:17:43.448Z","1.3.3-feature-bc9a86-knr8fey1":"2021-04-21T09:07:59.130Z","1.3.3-feature-9014a1-knydeohi":"2021-04-26T09:01:43.596Z","1.3.3-feature-95813d-knyg5ikv":"2021-04-26T10:18:40.383Z","1.3.3-hotfixes-e8472f-knyggvlg":"2021-04-26T10:27:21.436Z","1.3.4":"2021-04-30T07:29:20.935Z","1.3.4-beta.1":"2021-04-30T07:31:02.481Z","1.3.4-alpha.1":"2021-04-30T07:31:56.403Z","1.3.4-hotfix-3bc92f-kobfyzbg":"2021-05-05T12:34:20.554Z","1.3.4-hotfix-afd2d9-kocw9p9i":"2021-05-06T12:58:35.853Z","1.3.4-hotfixes-ee5127-kocwe7if":"2021-05-06T13:01:58.293Z","1.3.5":"2021-05-11T15:21:06.457Z","1.3.5-hotfixes-bcc907-kok6kf82":"2021-05-11T15:21:13.105Z","1.3.5-beta.1":"2021-05-11T15:22:15.979Z","1.3.5-alpha.1":"2021-05-11T15:23:24.198Z","1.3.5-feature-58f2b1-kottdwk6":"2021-05-18T09:10:14.840Z","1.3.5-hotfix-70ef0a-kottkkju":"2021-05-18T09:15:02.581Z","1.3.5-feature-0c8b08-kotu120l":"2021-05-18T09:28:08.758Z","1.3.5-feature-7b6c27-kotucvy9":"2021-05-18T09:37:28.715Z","1.3.5-feature-92b27a-kotv6jhr":"2021-05-18T10:00:45.500Z","1.3.5-feature-b8dac9-kotvgl3y":"2021-05-18T10:08:26.207Z","1.3.5-hotfix-17ddff-kotwwarq":"2021-05-18T10:48:04.744Z","1.3.5-feature-f670b1-koty6a7c":"2021-05-18T11:24:23.284Z","1.3.5-feature-e95942-kotypy7e":"2021-05-18T11:39:38.194Z","1.3.5-feature-a7ffe9-kotz5esw":"2021-05-18T11:51:27.977Z","1.3.5-feature-861069-kotzd9c8":"2021-05-18T11:58:03.287Z","1.3.5-feature-4d1762-kou1ln5r":"2021-05-18T13:00:14.621Z","1.3.5-feature-2a7e1c-kou25trq":"2021-05-18T13:16:02.704Z","1.3.5-hotfix-2f148c-kou4rufu":"2021-05-18T14:28:37.415Z","1.3.5-hotfixes-22bb90-kou61v19":"2021-05-18T15:04:22.755Z","1.3.5-feature-a0e719-kouc1dzb":"2021-05-18T17:52:36.966Z","1.3.5-feature-3f3402-kov6r63i":"2021-05-19T08:12:14.328Z","1.3.5-feature-6bc3ed-kov86sgr":"2021-05-19T08:52:19.485Z","1.3.5-feature-279e2a-kova2m4x":"2021-05-19T09:44:58.226Z","1.3.5-feature-40e3f1-kova8shz":"2021-05-19T09:50:03.904Z","1.3.5-feature-39315c-kovb6esv":"2021-05-19T10:16:02.821Z","1.3.6-hotfixes-bc7d04-kovj684h":"2021-05-19T13:59:28.144Z","1.3.6-beta.1":"2021-05-19T13:59:36.701Z","1.3.6-alpha.1":"2021-05-19T14:00:02.508Z","1.3.6-feature-4b5ba8-kovkaa5q":"2021-05-19T14:31:01.685Z","1.3.6":"2021-05-19T14:39:33.983Z","1.3.6-feature-5242f7-kovn99a6":"2021-05-19T15:54:16.266Z","1.3.6-feature-cfece4-kovntp0a":"2021-05-19T16:10:39.748Z","1.3.6-feature-fb36c7-koy85346":"2021-05-21T11:14:47.100Z","1.3.7-feature-b89afa-kp4412yz":"2021-05-25T14:05:24.920Z","1.3.6-feature-5d5a84-kp56xc60":"2021-05-26T08:14:50.309Z","1.3.6-feature-eff13b-kp57qlgs":"2021-05-26T08:37:39.829Z","1.3.6-feature-b17a1c-kp5dpciy":"2021-05-26T11:24:32.419Z","1.3.6-feature-091812-kp5i758q":"2021-05-26T13:30:14.252Z","1.3.6-feature-bc0e55-kp5lj5vl":"2021-05-26T15:03:32.694Z","1.3.6-feature-51a6ce-kp5n730l":"2021-05-26T15:50:06.841Z","1.4.0-feature-93f330-kp5pkk67":"2021-05-26T16:56:26.675Z","1.4.0-alpha.4":"2021-05-26T17:07:52.219Z","2.0.0-alpha.1":"2021-05-28T11:37:07.346Z","2.0.0-feature-ee03bc-kp89ql8p":"2021-05-28T11:56:25.531Z","2.0.0-alpha.2":"2021-05-28T12:03:10.867Z","1.3.7-hotfix-cc48a3-kpe8tx2j":"2021-06-01T16:17:30.935Z","1.3.7-hotfix-db39ef-kpfluigc":"2021-06-02T15:09:46.677Z","1.3.7":"2021-06-02T15:10:03.192Z","1.3.7-hotfixes-fd2a17-kpflvfyd":"2021-06-02T15:10:19.797Z","1.3.7-beta.1":"2021-06-02T15:10:50.269Z","2.0.0-alpha.3":"2021-06-02T15:14:35.900Z","1.3.8-hotfix-281fc8-kpmdpj1z":"2021-06-07T08:56:18.347Z","1.3.7-hotfix-23ff3f-kpmjtsya":"2021-06-07T11:47:41.275Z","2.0.0-feature-f7b1ac-kpmkblqy":"2021-06-07T12:01:44.271Z","2.0.0-feature-7cca00-kpmmapzy":"2021-06-07T12:57:13.526Z","1.3.8-hotfix-58ac00-kpmqn0ob":"2021-06-07T14:58:16.788Z","1.3.8":"2021-06-07T14:58:39.580Z","1.3.8-hotfixes-e7487c-kpmqnjgn":"2021-06-07T14:58:47.399Z","1.3.8-beta.1":"2021-06-07T14:59:00.889Z","2.0.0-alpha.4":"2021-06-07T15:00:27.536Z","2.0.0-feature-a3b72d-kpmsjjpl":"2021-06-07T15:51:52.959Z","1.3.8-hotfix-9f9272-kpnoc2t6":"2021-06-08T06:41:22.039Z","1.3.8-hotfixes-c316f6-kpnoewio":"2021-06-08T06:47:16.643Z","2.0.0-feature-065958-kpnsjyur":"2021-06-08T08:39:57.499Z","2.0.0-alpha.5":"2021-06-08T08:47:45.435Z","2.0.0-feature-5bfdc2-kpp2xxkb":"2021-06-09T06:18:47.668Z","2.0.0-feature-6fd7fa-kpp3ed02":"2021-06-09T06:31:33.909Z","2.0.0-feature-624af2-kpqmaa6v":"2021-06-10T08:07:50.056Z","2.0.0-feature-03a83c-kpqw68en":"2021-06-10T12:44:36.065Z","2.0.0-feature-a6a582-kpqwzd4i":"2021-06-10T13:07:30.312Z","2.0.0-feature-eea743-kq0skrcf":"2021-06-17T11:01:33.731Z","2.0.0-feature-a3f451-kq0sl0dk":"2021-06-17T11:01:56.659Z","2.0.0-beta.1":"2021-06-18T14:19:30.966Z","2.0.0-feature-be4534-kq6mz4bq":"2021-06-21T13:11:24.191Z","2.0.0-alpha.6":"2021-06-21T14:08:03.664Z","2.0.0-alpha.7":"2021-06-21T14:11:12.438Z","2.0.0-feature-080d7d-kq6p75bk":"2021-06-21T14:13:50.590Z","2.0.0-alpha.8":"2021-06-22T13:12:48.834Z","2.0.0-feature-0f5459-kqgck61g":"2021-06-28T08:17:31.291Z","1.3.9":"2021-07-01T12:47:49.651Z","1.3.9-hotfixes-85ec58-kqkwpzw6":"2021-07-01T12:52:38.745Z","2.0.0-alpha.9":"2021-07-01T12:53:10.472Z","2.0.0-beta.2":"2021-07-01T12:54:02.009Z","2.0.0-feature-1324f1-kqkwufib":"2021-07-01T12:56:27.928Z","2.0.0-feature-fa239b-kr62xcot":"2021-07-16T08:30:08.687Z","2.0.0-feature-704795-kr635a3b":"2021-07-16T08:36:23.508Z","2.0.0-feature-f70aab-kr63qz2r":"2021-07-16T08:53:17.088Z","2.0.0-feature-bb5599-kr69y6qw":"2021-07-16T11:47:03.030Z","2.0.0-feature-dbf8af-kr6a1o6t":"2021-07-16T11:49:10.980Z","2.0.0-feature-bc0c14-krbqjhru":"2021-07-20T07:30:05.812Z","2.0.0-feature-13e940-krbwc8jq":"2021-07-20T10:12:07.102Z","2.0.0-feature-1930e8-krdfdxi0":"2021-07-21T11:53:33.809Z","2.0.0-feature-ac6f0c-krdfnp7j":"2021-07-21T12:00:44.479Z","2.0.0-feature-e1fcd8-krdhtd8f":"2021-07-21T13:01:13.634Z","2.0.0-feature-b3e7ff-kremc3v3":"2021-07-22T07:55:38.155Z","2.0.0-feature-dc0fc1-krgab4ys":"2021-07-23T11:54:14.787Z","2.0.0-alpha.10":"2021-07-23T12:01:36.929Z","2.0.0-feature-366e39-krganqi7":"2021-07-23T12:04:01.466Z","2.0.0-feature-862010-krkoya1e":"2021-07-26T13:55:32.891Z","2.0.0-feature-808263-krkq5vzi":"2021-07-26T14:29:32.224Z","2.0.0-alpha.11":"2021-07-27T06:33:06.541Z","2.0.0-feature-bee316-krlsi8pm":"2021-07-27T08:22:43.629Z","2.0.0-feature-4236fe-krlz8e0w":"2021-07-27T11:31:12.917Z","2.0.0-feature-acb72b-krm3icca":"2021-07-27T13:30:27.728Z","2.0.0-feature-d9eccf-krm5y6lw":"2021-07-27T14:38:49.068Z","2.0.0-feature-719596-krm5z87x":"2021-07-27T14:39:55.331Z","2.0.0-feature-c63ddf-krm6zs91":"2021-07-27T15:08:04.573Z","2.0.0-feature-114da8-kropf34j":"2021-07-29T09:19:25.130Z","2.0.0-feature-31699c-krowjgdu":"2021-07-29T12:38:44.598Z","2.0.0-alpha.12":"2021-07-29T14:00:45.034Z","2.0.0-feature-23df0b-krozopwg":"2021-07-29T14:06:50.719Z","2.0.0-feature-494b28-krozotnx":"2021-07-29T14:06:54.492Z","2.0.0-alpha.13":"2021-07-29T14:16:37.620Z","2.0.0-feature-045dca-krp87ztf":"2021-07-29T18:05:43.286Z","2.0.0-feature-b7df60-krp885jt":"2021-07-29T18:05:54.385Z","2.0.0-alpha.14":"2021-07-30T07:58:48.913Z","2.0.0-beta.3":"2021-07-30T07:59:08.457Z","2.0.0-feature-f0f0a4-krq2dl1o":"2021-07-30T08:10:21.585Z","2.0.0-feature-b1bce2-krq2jpkb":"2021-07-30T08:15:04.280Z","2.0.0-feature-9cf175-krupzv04":"2021-08-02T14:22:11.446Z","2.0.0-alpha.15":"2021-08-02T16:42:39.472Z","2.0.0-feature-b9289d-kruv3xyl":"2021-08-02T16:45:33.810Z","2.0.0-beta.4":"2021-08-03T08:16:25.996Z","2.0.0-alpha.16":"2021-08-03T08:18:32.386Z","2.0.0-beta.5":"2021-08-03T11:41:54.407Z","2.0.0":"2021-08-03T12:32:31.153Z","2.0.0-feature-822a89-krw1mv2i":"2021-08-03T12:35:57.872Z","2.0.0-hotfix-b5d760-krxh4rn8":"2021-08-04T12:37:20.528Z","2.0.1-hotfix-9bab30-krxh5vmx":"2021-08-04T12:38:15.823Z","2.0.1-hotfix-438a15-krxht32y":"2021-08-04T12:56:32.105Z","2.0.1":"2021-08-04T13:52:54.470Z","2.0.1-alpha.1":"2021-08-04T13:57:35.365Z","2.0.1-beta.1":"2021-08-04T13:57:39.706Z","2.0.1-feature-0b2c83-krxk3rvk":"2021-08-04T14:00:45.276Z","2.0.1-feature-cdbb0b-krz19rgr":"2021-08-05T14:48:51.251Z","2.0.1-feature-6a8c5d-krz1ouhi":"2021-08-05T15:00:51.091Z","2.0.1-hotfix-29c69b-ks4higor":"2021-08-09T10:22:29.266Z","2.0.2-hotfix-6c1466-ks4msry0":"2021-08-09T12:50:22.874Z","2.0.2":"2021-08-09T12:51:21.460Z","2.0.2-beta.1":"2021-08-09T12:52:45.122Z","2.0.2-alpha.1":"2021-08-09T12:54:01.264Z","2.0.2-feature-510b56-ks5sb024":"2021-08-10T08:12:22.426Z","2.0.2-feature-2a6a3b-ks5yrq8l":"2021-08-10T11:13:23.775Z","2.0.2-feature-a2e491-ksfuo79b":"2021-08-17T09:16:10.223Z","2.0.3-alpha.1":"2021-08-17T12:18:38.624Z","2.0.3-feature-7a030a-ksg3fgbq":"2021-08-17T13:21:19.385Z","2.0.3-feature-a4d898-ksg3xxd6":"2021-08-17T13:35:48.738Z","2.0.3":"2021-08-17T13:53:11.671Z","2.0.4-alpha.1":"2021-08-17T13:59:03.653Z","2.0.4-beta.1":"2021-08-17T13:59:14.800Z","2.0.4":"2021-08-17T13:59:27.173Z","2.0.4-feature-cbff4d-ksg55z2f":"2021-08-17T14:10:10.191Z","2.0.4-feature-401017-ksiz8k5s":"2021-08-19T13:47:32.487Z","2.0.4-feature-66a5b7-ksizcyzf":"2021-08-19T13:50:44.126Z","2.0.4-feature-d29615-ksk4gfb3":"2021-08-20T09:01:09.099Z","2.0.4-feature-ca9f09-ksk4izwg":"2021-08-20T09:03:09.635Z","2.0.4-feature-12bd65-ksk8xelx":"2021-08-20T11:06:43.404Z","2.0.4-feature-00968c-ksk9f5fi":"2021-08-20T11:20:20.467Z","2.0.4-feature-56c202-kszv3v0v":"2021-08-31T09:23:59.046Z","2.0.4-feature-82c24f-kt8h9un1":"2021-09-06T10:06:30.637Z","2.0.4-feature-c84a21-kt8haxcy":"2021-09-06T10:07:20.981Z","2.0.4-feature-b9b50f-kt8ikmrw":"2021-09-06T10:43:11.223Z","2.0.4-feature-b3675b-kt8kezkk":"2021-09-06T11:34:53.219Z","2.0.4-feature-7dd3d1-kt8mdpez":"2021-09-06T12:29:36.806Z","2.0.4-feature-2086c7-ktcmeyc5":"2021-09-09T07:41:44.218Z","2.0.4-hotfix-80af79-ktcncxdv":"2021-09-09T08:07:51.397Z","2.0.4-hotfix-e95a8c-ktcoadso":"2021-09-09T08:34:18.900Z","2.0.4-hotfix-b496a7-ktczf7xr":"2021-09-09T13:45:40.865Z","2.0.4-hotfix-e330d4-ktd0pfij":"2021-09-09T14:21:34.819Z","2.0.4-hotfix-158618-ktd0qnvg":"2021-09-09T14:22:31.244Z","2.0.4-hotfix-396d99-ktd0r957":"2021-09-09T14:23:11.179Z","2.0.4-hotfix-243bf5-ktd0tuw2":"2021-09-09T14:25:15.404Z","2.0.4-feature-178ab8-ktjtd98n":"2021-09-14T08:30:59.383Z","2.0.4-feature-1f05e3-ktjw3kii":"2021-09-14T09:47:14.158Z","2.1.0-feature-fd742d-ktjw8vr2":"2021-09-14T09:51:10.146Z","2.1.0-feature-0507a0-ktjwag29":"2021-09-14T09:52:19.773Z","2.1.0-feature-a82f2f-ktjwaqvw":"2021-09-14T09:52:33.951Z","2.1.0-feature-75ebf3-ktjwb0uf":"2021-09-14T09:53:09.449Z","2.1.0-alpha.1":"2021-09-14T13:28:58.155Z","2.1.0-feature-89dacf-ktk44eje":"2021-09-14T13:31:34.622Z","2.1.0-feature-6bc4a6-ktk44nuu":"2021-09-14T13:31:43.937Z","2.1.0-feature-29311a-ktk4596m":"2021-09-14T13:32:33.868Z","2.0.5-hotfix-4da853-ktk4xz6q":"2021-09-14T13:54:51.619Z","2.0.5":"2021-09-14T13:57:07.721Z","2.0.5-beta.1":"2021-09-14T14:03:00.856Z","2.1.0-alpha.2":"2021-09-14T14:05:07.159Z","2.1.0-feature-851976-ktk7yeql":"2021-09-14T15:19:05.348Z","2.1.0-feature-ed5068-ktk80t0n":"2021-09-14T15:20:45.969Z","2.1.0-feature-64c25d-ktk813ni":"2021-09-14T15:21:19.531Z","2.1.0-alpha.3":"2021-09-15T10:12:27.860Z","2.1.0-feature-f2b136-ktlcscco":"2021-09-15T10:22:15.284Z","2.1.0-feature-d1af5b-ktlcshwc":"2021-09-15T10:22:19.536Z","2.1.0-feature-d8844b-kttyv5es":"2021-09-21T11:02:25.909Z","2.1.0-feature-6afc01-ktu44qv6":"2021-09-21T13:29:50.119Z","2.0.2-feature-32746d-ktv6mg3r":"2021-09-22T07:27:01.488Z","2.1.0-feature-2ba035-ktv86ll4":"2021-09-22T08:11:01.170Z","2.1.0-feature-6140df-ktvevqva":"2021-09-22T11:18:43.618Z","2.1.0-feature-9b9717-ktvfmdqo":"2021-09-22T11:39:07.631Z","2.1.0-feature-10c815-ktvg3to5":"2021-09-22T11:52:41.781Z","2.1.0-feature-7e656b-ktvgwpdx":"2021-09-22T12:15:15.192Z","2.1.0-feature-1edf18-ktvhkzk6":"2021-09-22T12:33:49.932Z","2.1.0-feature-a4e8f5-ktvidxz5":"2021-09-22T12:56:31.811Z","2.1.0-alpha.4":"2021-09-23T10:08:55.801Z","2.1.0-beta.1":"2021-09-23T10:13:41.664Z","2.1.0-feature-79ab82-ku73f3h1":"2021-09-30T15:30:37.971Z","2.1.0-feature-da90f1-ku73fo5u":"2021-09-30T15:31:25.366Z","2.0.6-release-9727d0-kv0urhmu":"2021-10-21T11:21:39.357Z","2.0.6-hotfix-089aa1-kv0uz7ua":"2021-10-21T11:27:50.466Z","2.0.6-release-180c88-kv15rzvf":"2021-10-21T16:29:45.206Z","2.0.6":"2021-10-21T16:31:11.153Z","2.1.0-beta.2":"2021-10-21T16:32:20.572Z","2.1.0-alpha.5":"2021-10-21T16:32:37.878Z","2.1.0-feature-dca0d5-kv6hl6ex":"2021-10-25T09:59:23.475Z","2.1.0-feature-b4c260-kv6jzxgk":"2021-10-25T11:07:03.517Z","2.1.0-feature-002ed0-kv6k8xup":"2021-10-25T11:13:42.540Z","2.1.0-feature-e93ded-kv7vnaqn":"2021-10-26T09:20:30.542Z","2.1.0-feature-d7716b-kv7vo5b4":"2021-10-26T09:21:30.652Z","2.0.6-feature-eb8de7-kv7w4puy":"2021-10-26T09:34:04.979Z","2.1.0-feature-ec733b-kv80bwfr":"2021-10-26T11:32:14.802Z","2.1.0-feature-514050-kv80gk6h":"2021-10-26T11:35:17.928Z","2.1.0-feature-056ea1-kv80gc4h":"2021-10-26T11:35:31.073Z","2.0.6-feature-87d213-kv81fjtx":"2021-10-26T12:02:40.375Z","2.0.6-feature-a29f05-kv98y9a8":"2021-10-27T08:21:09.486Z","2.0.6-feature-bcf3de-kv9niylk":"2021-10-27T15:09:07.454Z","2.0.6-release-18bfa7-kv9nopls":"2021-10-27T15:13:37.046Z","2.0.6-feature-042730-kv9nqrjg":"2021-10-27T15:15:18.382Z","2.1.0-release-8f1e60-kv9ny564":"2021-10-27T15:20:53.402Z","2.1.0-feature-e61db0-kv9o5p1m":"2021-10-27T15:26:41.482Z","2.1.0-feature-9ac9cf-kvb3hmno":"2021-10-28T15:23:39.658Z","2.1.0-feature-f769eb-kvb3l0n4":"2021-10-28T15:26:29.602Z","2.1.0-feature-a08e3e-kvb9mq41":"2021-10-28T18:15:39.734Z","2.1.0-feature-d9c75b-kvb9ntcr":"2021-10-28T18:16:32.977Z","2.1.0-release-ef32b5-kvck0v4a":"2021-10-29T15:54:05.338Z","2.2.0-alpha.1":"2021-11-02T08:41:07.845Z","2.2.0-beta.1":"2021-11-02T08:44:35.666Z","2.1.0":"2021-11-03T13:35:38.252Z","2.2.0-alpha.2":"2021-11-03T13:39:41.230Z","2.2.0-beta.2":"2021-11-03T13:39:49.415Z","2.2.0-feature-4f8842-kvjkjchx":"2021-11-03T13:42:43.037Z","2.2.0-feature-a7df36-kvjkjeeq":"2021-11-03T13:43:08.157Z","2.2.0-feature-42049d-kvrtc0hn":"2021-11-09T08:11:10.521Z","2.1.1-feature-10f87b-kvrzov9h":"2021-11-09T11:09:18.697Z","2.1.1-feature-443ddc-kvs06u8y":"2021-11-09T11:23:18.159Z","2.1.1":"2021-11-09T16:12:42.436Z","2.2.0-alpha.3":"2021-11-09T16:17:03.659Z","2.2.0-beta.3":"2021-11-09T16:17:27.626Z","2.1.1-feature-aa648f-kvtcuacc":"2021-11-10T10:05:27.545Z","2.2.0-feature-91283a-kvtcvc3z":"2021-11-10T10:05:50.813Z","2.2.0-feature-fbf0a2-kvtdxujn":"2021-11-10T10:35:54.141Z","2.2.0-feature-62bb11-kvtfm1yv":"2021-11-10T11:22:36.629Z","2.2.0-feature-87f377-kvtfmj9s":"2021-11-10T11:23:15.454Z","2.2.0-feature-fa518f-kvutg2ux":"2021-11-11T10:38:00.790Z","2.2.0-feature-f8f082-kw3bqna8":"2021-11-17T09:32:21.993Z","2.2.0-feature-b48d1f-kw3db2v0":"2021-11-17T10:15:45.473Z","2.2.0-feature-3a0400-kw3jaweg":"2021-11-17T13:03:37.080Z","2.2.0-feature-decc08-kwakxa9w":"2021-11-22T11:23:44.020Z","2.2.0-feature-3d1237-kwasf7rb":"2021-11-22T14:53:21.093Z","2.2.0-feature-62a201-kwbt8vez":"2021-11-23T08:04:37.613Z","2.2.0-feature-14a9a3-kwc64iq0":"2021-11-23T14:05:03.226Z","2.2.0-feature-b741f9-kwc7jmmy":"2021-11-23T14:44:56.677Z","2.2.0-feature-6b5cf2-kwdoxqdu":"2021-11-24T15:39:02.091Z","2.1.2":"2021-11-25T14:29:06.322Z","2.2.0-feature-980dec-kwf20wi7":"2021-11-25T14:33:01.986Z","2.2.0-feature-db68e5-kwf20qcg":"2021-11-25T14:33:12.445Z","2.2.0-feature-137010-kwf210yb":"2021-11-25T14:33:29.790Z","2.2.0-feature-867f54-kwga65ki":"2021-11-26T11:09:00.959Z","2.2.0-feature-ff0300-kwgb5059":"2021-11-26T11:36:04.045Z","2.2.0-alpha.4":"2021-11-26T11:47:37.929Z","2.2.0-feature-a12917-kwgi510n":"2021-11-26T14:52:26.570Z","2.2.0-feature-1cc3f5-kwgi5cwr":"2021-11-26T14:52:36.626Z","2.2.0-feature-b9c8c5-kwko1jq8":"2021-11-29T12:48:27.795Z","2.2.0-feature-201ee7-kwko414g":"2021-11-29T12:50:36.691Z","2.2.0-feature-d316de-kwkomo3g":"2021-11-29T13:04:57.629Z","2.2.0-feature-72735d-kwm5dckx":"2021-11-30T13:41:38.407Z","2.2.0-feature-27552c-kwnf5qbl":"2021-12-01T11:03:05.951Z","2.2.0-alpha.6":"2021-12-01T13:56:28.846Z","2.2.0-alpha.7":"2021-12-01T14:00:52.395Z","2.2.0-feature-660ae5-kwnluzia":"2021-12-01T14:11:41.302Z","2.2.0-feature-d8700e-kwnlxgrk":"2021-12-01T14:13:32.784Z","2.2.0-beta.4":"2021-12-01T14:19:11.030Z","2.2.0-feature-aff7e5-kwnm9zai":"2021-12-01T14:22:41.990Z","2.2.0-feature-163e13-kwnmqla9":"2021-12-01T14:36:00.461Z","2.2.0-feature-ebe108-kwovip68":"2021-12-02T11:29:48.646Z","2.2.0-feature-bde75a-kwq7gp7g":"2021-12-03T09:51:09.921Z","2.2.0-feature-053022-kwucg5h3":"2021-12-06T07:21:56.087Z","2.2.0-feature-602b94-kwuj6uqn":"2021-12-06T10:30:51.268Z","2.2.0-alpha.8":"2021-12-06T12:12:04.255Z","2.2.0-alpha.9":"2021-12-06T12:15:11.857Z","2.2.0-feature-8a089c-kwun1qhs":"2021-12-06T12:18:59.227Z","2.2.0-feature-893842-kwun23ig":"2021-12-06T12:19:20.540Z","2.2.0-alpha.10":"2021-12-06T15:04:33.756Z","2.2.0-feature-875eb6-kwvsacos":"2021-12-07T07:33:32.126Z","2.2.0-feature-5900d2-kwvwdb5w":"2021-12-07T09:27:57.572Z","2.2.0-feature-28108b-kwvwvcij":"2021-12-07T09:41:47.745Z","2.2.0-beta.5":"2021-12-08T12:07:00.046Z","2.2.0-feature-dddd81-kwxhmns0":"2021-12-08T12:10:11.282Z","2.2.0-feature-0dfe72-kx4hhcqo":"2021-12-13T09:40:40.261Z","2.2.0-feature-bc0d3c-kx4rcdfn":"2021-12-13T14:16:53.715Z","2.2.0-feature-44cc8e-kx4sojxn":"2021-12-13T14:54:15.079Z","2.2.0-feature-301680-kx5v0rxz":"2021-12-14T08:47:21.371Z","2.2.0-feature-44cc8e-kx5vtg3k":"2021-12-14T09:10:01.266Z","2.2.0-feature-88b9f8-kx5z44ao":"2021-12-14T10:41:47.713Z","2.2.0-feature-caf2f8-kx5zdjgj":"2021-12-14T10:49:15.148Z","2.2.0-feature-22bb25-kx63dqrv":"2021-12-14T12:41:49.565Z","2.2.0-feature-ea5956-kx63h0qt":"2021-12-14T12:43:54.339Z","2.2.0-feature-920289-kxehnsw6":"2021-12-20T09:43:16.641Z","2.2.0-feature-aa69cb-kxftisb8":"2021-12-21T08:03:25.864Z","2.2.0-betafix-ef2c0d-kxg4pxol":"2021-12-21T13:16:52.546Z","2.2.0-feature-2bc128-kxgj4v9z":"2021-12-21T20:00:06.832Z","2.2.0-feature-01ef90-kxgkz61u":"2021-12-21T20:52:05.738Z","2.2.0-beta.6":"2021-12-22T08:27:47.086Z","2.2.0-feature-f35f93-kxhajoc6":"2021-12-22T08:47:36.366Z","2.2.0-feature-107759-kxym5i5l":"2022-01-03T11:44:47.980Z","2.2.0-feature-d7dd81-kxzxw4h3":"2022-01-04T10:00:52.740Z","2.2.0-feature-733ae3-ky04lp8x":"2022-01-04T13:09:04.715Z","2.2.0-feature-92df7e-ky18ccg9":"2022-01-05T07:41:07.077Z","2.2.0-feature-c3c2a9-ky18o7p5":"2022-01-05T07:50:48.388Z","2.2.0-feature-9cdc94-ky19fyk8":"2022-01-05T08:12:02.147Z","2.2.0-feature-e4de8d-ky1dymn4":"2022-01-05T10:18:46.017Z","2.2.0-feature-82ed75-ky1ijtx9":"2022-01-05T12:27:10.431Z","2.2.0-feature-0c37b3-ky1mdv3l":"2022-01-05T14:14:12.557Z","2.2.0-feature-d5d04d-ky8gijdu":"2022-01-10T09:04:17.495Z","2.2.0-feature-4d0e2a-ky8hf9ts":"2022-01-10T09:29:41.253Z","2.2.0-feature-4c2b8f-ky8iodi8":"2022-01-10T10:04:48.418Z","2.2.0-feature-3359af-ky9rold5":"2022-01-11T07:04:41.533Z","2.2.0-feature-7bbd70-ky9xss5n":"2022-01-11T09:55:53.351Z","2.2.0-feature-a1f965-kya8kctj":"2022-01-11T14:57:41.183Z","2.2.0-feature-effe40-kyb830yw":"2022-01-12T07:32:04.264Z","2.2.0-feature-843942-kybfro39":"2022-01-12T11:06:41.904Z","2.2.0-feature-1ce036-kybfyfad":"2022-01-12T11:12:20.370Z","2.2.0-feature-b6553c-kybgk14n":"2022-01-12T11:28:40.631Z","2.2.0-feature-f2c1d1-kybhrxuf":"2022-01-12T12:03:19.215Z","2.2.0-feature-c8bfc1-kybiw9fw":"2022-01-12T12:34:18.874Z","2.3.0-feature-6eefaa-kybo391p":"2022-01-12T14:59:57.813Z","2.3.0-alpha.1":"2022-01-12T15:11:07.114Z","2.3.0-feature-37b174-kybsayw8":"2022-01-12T16:58:11.925Z","2.2.0-feature-bf0804-kybx95ak":"2022-01-12T19:16:12.240Z","2.2.0-feature-e05a3b-kybxmbyx":"2022-01-12T19:26:28.728Z","2.3.0-feature-8bbd3c-kycr28mk":"2022-01-13T09:10:55.766Z","2.3.0-feature-424bf4-kycriwdj":"2022-01-13T09:23:32.210Z","2.2.0-betafix-fb6ab8-kyd0xqg2":"2022-01-13T13:47:03.527Z","2.2.0-betafix-cd49a3-kyd23zzz":"2022-01-13T14:19:57.643Z","2.2.0-feature-7d71ce-kye5p7hi":"2022-01-14T08:48:22.267Z","2.3.0-feature-d3f296-kye714it":"2022-01-14T09:25:48.931Z","2.3.0-alpha.2":"2022-01-14T12:28:29.788Z","2.3.0-feature-b033e9-kyee5a1b":"2022-01-14T12:44:55.538Z","2.3.0-feature-0b85ad-kyee6vxs":"2022-01-14T12:45:51.877Z","2.3.0-feature-0f459d-kyee7qbe":"2022-01-14T12:46:47.722Z","2.2.0-beta.7":"2022-01-14T12:48:42.360Z","2.3.0-alpha.3":"2022-01-14T12:52:39.080Z","2.3.0-feature-330879-kyeez2ij":"2022-01-14T13:07:49.992Z","2.3.0-feature-a0fe27-kyeezq50":"2022-01-14T13:08:18.812Z","2.3.0-feature-d0d8d0-kyef062v":"2022-01-14T13:08:38.077Z","2.3.0-feature-9f2789-kyeezgf9":"2022-01-14T13:08:49.986Z","2.3.0-alpha.4":"2022-01-14T14:14:34.314Z","2.3.0-feature-d783d5-kyehi6rn":"2022-01-14T14:18:38.570Z","2.3.0-feature-a348ca-kyehisea":"2022-01-14T14:19:06.936Z","2.3.0-feature-600c6c-kyehipeq":"2022-01-14T14:19:22.182Z","2.3.0-alpha.5":"2022-01-14T14:52:20.713Z","2.3.0-feature-3f5be1-kyeixt8a":"2022-01-14T14:58:43.266Z","2.3.0-feature-9d773a-kyeiy8f0":"2022-01-14T14:59:11.381Z","2.3.0-feature-37cff7-kyeiy92a":"2022-01-14T14:59:37.696Z","2.3.0-feature-fe2573-kyjxf9u0":"2022-01-18T09:43:21.801Z","2.3.0-feature-a42fca-kyjxu20u":"2022-01-18T09:54:38.107Z","2.3.0-alpha.6":"2022-01-19T13:55:12.271Z","2.3.0-feature-47de03-kylm15ya":"2022-01-19T13:59:59.426Z","2.3.0-feature-df0312-kylm1e20":"2022-01-19T14:00:14.541Z","2.3.0-feature-2413d5-kymuzn3m":"2022-01-20T10:58:12.939Z","2.3.0-feature-f04dd2-kymzppae":"2022-01-20T13:11:00.990Z","2.3.0-alpha.7":"2022-01-20T13:11:43.133Z","2.3.0-feature-9412e2-kymzvnm0":"2022-01-20T13:15:05.855Z","2.3.0-feature-a42fca-kyo9qvzq":"2022-01-21T10:39:14.295Z","2.3.0-feature-5915b9-kyoinikt":"2022-01-21T14:49:12.162Z","2.3.0-feature-806469-kysts2jh":"2022-01-24T15:11:26.097Z","2.3.0-feature-d4c0f3-kyu4jh03":"2022-01-25T13:00:07.046Z","2.3.0-alpha.8":"2022-01-25T16:30:36.921Z","2.3.0-feature-579e9a-kyvlljxs":"2022-01-26T13:45:24.636Z","2.2.0":"2022-02-02T13:15:30.815Z","2.3.0-alpha.9":"2022-02-02T13:19:30.478Z","2.3.0-beta.1":"2022-02-02T13:24:17.270Z","2.3.0-feature-ebba9d-kz5lezmb":"2022-02-02T13:37:55.014Z","2.3.0-feature-f29109-kzdv733e":"2022-02-08T08:34:09.546Z","2.3.0-revert-48-feature-e581f5-kzfanjug":"2022-02-09T08:34:45.919Z","2.3.0-revert-52-feature-e084bc-kzfantsr":"2022-02-09T08:35:06.364Z","2.3.0-feature-60fd62-kzfbgeyg":"2022-02-09T08:56:47.912Z","2.3.0-alpha.10":"2022-02-09T10:17:13.317Z","2.3.0-feature-02fb94-kzfehw4a":"2022-02-09T10:21:53.264Z","2.3.0-feature-3077f0-kzfeig77":"2022-02-09T10:22:39.017Z","2.3.0-alpha.11":"2022-02-09T10:56:14.472Z","2.3.0-feature-02bfaa-kzffu0yj":"2022-02-09T10:59:15.800Z","2.3.0-beta.2":"2022-02-09T12:25:22.219Z","2.3.0-alpha.12":"2022-02-09T12:28:53.421Z","2.3.0-beta.3":"2022-02-09T13:01:02.599Z","2.3.0-alpha.13":"2022-02-09T13:06:57.729Z","2.3.0-feature-e87689-kzfkibrg":"2022-02-09T13:10:22.116Z","2.3.0-feature-fc7358-kzmh2r78":"2022-02-14T09:08:47.005Z","2.3.0-feature-ec7f9f-kzmk8l5a":"2022-02-14T10:37:37.791Z","2.3.0-feature-b87e40-kzmliapl":"2022-02-14T11:12:47.173Z","2.3.0-feature-27fbc5-kzmmpai4":"2022-02-14T11:45:59.972Z","2.3.0-feature-b87e40-kzmn26da":"2022-02-14T11:56:24.611Z","2.3.0-feature-16ee85-kzms8zae":"2022-02-14T14:21:39.935Z","2.3.0-feature-3d0891-kzmwtwls":"2022-02-14T16:29:49.511Z","2.3.0-feature-32c355-kzo2c0uk":"2022-02-15T11:51:19.394Z","2.3.0-feature-832e0c-kzpem4oc":"2022-02-16T10:23:06.833Z","2.3.0-feature-0212ba-kzpew4c1":"2022-02-16T10:31:04.251Z","2.3.0-feature-164c81-kzpgyxr5":"2022-02-16T11:28:50.596Z","2.3.0-alpha.14":"2022-02-16T11:59:24.296Z","2.3.0-feature-5bc8dd-kzpi6skt":"2022-02-16T12:03:16.485Z","2.3.0-beta.4":"2022-02-16T15:22:30.701Z","2.3.0-feature-bc7cd5-kzpqc3ru":"2022-02-16T15:51:22.741Z","3.0.0-feature-849b4e-kzy64v6f":"2022-02-22T13:46:31.924Z","3.0.0-feature-e534e4-kzy949qn":"2022-02-22T14:59:57.568Z","2.3.0":"2022-03-09T11:03:52.950Z","3.0.0-feature-182af9-l0ktzzyy":"2022-03-10T10:14:50.692Z","2.3.0-feature-e4a773-l0ku02nz":"2022-03-10T10:14:57.586Z","2.3.0-feature-1ceb7a-l0qgvmbb":"2022-03-14T08:53:46.887Z","2.3.0-feature-d0d461-l126vchm":"2022-03-22T13:47:17.684Z","2.3.0-feature-56235d-l128ulvg":"2022-03-22T14:42:54.430Z","2.3.0-feature-c8a43c-l13dzexv":"2022-03-23T09:53:53.613Z","2.3.0-feature-a60e75-l13f2kda":"2022-03-23T10:24:35.391Z","2.3.0-feature-fcab0a-l13ffv1i":"2022-03-23T10:34:33.055Z","2.3.0-feature-36120b-l13k4b7l":"2022-03-23T12:45:57.740Z","2.3.0-feature-da6bc6-l13l0pec":"2022-03-23T13:11:04.407Z","2.3.0-feature-9225e8-l13nplx4":"2022-03-23T14:26:13.149Z","2.3.0-feature-be312d-l13pq0nk":"2022-03-23T15:22:33.221Z","2.3.0-feature-8cff56-l13smi3i":"2022-03-23T16:43:38.773Z","2.3.0-feature-df6d5c-l13uz8es":"2022-03-23T17:50:11.431Z","2.3.0-hotfix-ce0755-l150pz9d":"2022-03-24T13:18:25.963Z","2.3.0-hotfix-435c5b-l150tr76":"2022-03-24T13:20:59.436Z","2.3.1-hotfix-4f3677-l1511wuu":"2022-03-24T13:27:36.889Z","2.3.1-hotfix-7136fd-l15276b8":"2022-03-24T13:59:48.262Z","2.3.1-hotfix-f16747-l152lzdo":"2022-03-24T14:10:58.547Z","2.3.1":"2022-03-24T14:43:54.589Z","2.3.1-beta.1":"2022-03-24T14:44:00.810Z","2.3.1-alpha.1":"2022-03-24T14:44:49.398Z","2.3.2-feature-b2c98b-l168ok0a":"2022-03-25T09:48:40.008Z","2.3.2":"2022-03-25T10:20:24.628Z","2.3.0-feature-267e66-l1ahrdx0":"2022-03-28T09:14:32.431Z","2.3.2-feature-0fc2e6-l1c2p9fh":"2022-03-29T11:48:04.256Z","2.3.2-feature-d36349-l1daevvo":"2022-03-30T08:11:53.313Z","2.3.2-feature-f33315-l2egwcua":"2022-04-25T08:40:38.046Z","2.3.2-feature-bbb9b8-l305d0oy":"2022-05-10T12:48:34.285Z","3.0.0-feature-ece01a-l3bfxyf4":"2022-05-18T10:30:28.655Z","2.3.2-feature-04e442-l3jsnjq1":"2022-05-24T06:49:01.427Z","2.3.2-feature-89e4aa-l3vb87f0":"2022-06-01T08:14:06.745Z","2.3.2-feature-d48a6d-l3y8dr55":"2022-06-03T09:17:05.842Z","2.3.2-feature-0a9e83-l3y94ae4":"2022-06-03T09:37:50.312Z","2.3.2-feature-b95934-l46rl8xu":"2022-06-09T08:37:02.525Z","2.3.2-feature-d3aa75-l46z6rfp":"2022-06-09T12:09:58.068Z","2.3.2-feature-f773bb-l4739wa1":"2022-06-09T14:04:44.284Z","2.3.2-feature-6fe409-l48fsiio":"2022-06-10T12:42:43.710Z","2.3.2-feature-e7ca9c-l4cn2kfb":"2022-06-13T11:17:23.508Z","2.3.2-feature-961799-l4dy56mp":"2022-06-14T09:15:05.141Z","2.3.2-feature-939ee6-l4dylfu0":"2022-06-14T09:27:42.435Z","2.3.2-feature-f773bb-l4dzehsr":"2022-06-14T09:50:19.462Z","2.3.2-feature-029c15-l4e27gls":"2022-06-14T11:09:08.083Z","2.3.2-feature-57f6c3-l4e2ryp8":"2022-06-14T11:24:49.703Z","2.3.2-feature-174cbe-l4e2sk78":"2022-06-14T11:25:10.029Z","2.3.2-feature-436165-l4e4ntj9":"2022-06-14T12:17:34.997Z","2.3.2-feature-0f78f8-l4e5yo0c":"2022-06-14T12:54:03.695Z","2.3.2-feature-0e83c4-l4e87ebf":"2022-06-14T13:56:46.590Z","2.3.2-feature-9b1c30-l4e8iyci":"2022-06-14T14:05:41.191Z","2.3.2-feature-8a7c31-l4e9lz4l":"2022-06-14T14:36:00.113Z","2.3.2-feature-428c48-l4fcrz7z":"2022-06-15T08:53:12.558Z","2.3.3-feature-33b1ae-l4fhi731":"2022-06-15T11:04:49.637Z","2.3.3-alpha.1":"2022-06-15T11:25:32.840Z","2.3.3-beta.1":"2022-06-15T11:26:31.885Z","2.3.3":"2022-06-15T11:26:35.118Z","2.3.3-alpha.2":"2022-06-15T11:37:22.979Z","2.3.3-feature-f263da-l4i7b3ja":"2022-06-17T08:42:28.927Z","2.3.3-feature-58d0e4-l4i90xak":"2022-06-17T09:31:05.509Z","2.3.3-feature-d2bda2-l4i9902b":"2022-06-17T09:36:52.479Z","2.3.3-feature-024e74-l4ia0kha":"2022-06-17T09:58:22.677Z","2.3.3-feature-c86996-l4ia3n08":"2022-06-17T10:00:38.225Z","2.3.3-feature-c623c6-l4ia4ogz":"2022-06-17T10:02:01.140Z","2.3.3-feature-76096a-l4ic7bsn":"2022-06-17T10:59:25.437Z","2.3.3-feature-8642eb-l4ij7qwz":"2022-06-17T14:15:46.363Z","2.4.0-feature-136512-l4mfvku7":"2022-06-20T07:53:25.175Z","2.4.0-alpha.1":"2022-06-20T07:57:07.081Z","2.4.0-feature-7071ff-l4mga6xn":"2022-06-20T08:04:54.605Z","2.4.0-feature-d41789-l4mgf2j8":"2022-06-20T08:08:31.950Z","2.4.0-alpha.2":"2022-06-20T08:11:12.504Z","2.4.0-feature-ac9b10-l4mgocpb":"2022-06-20T08:15:49.051Z","2.4.0-feature-f9aeff-l4mh44np":"2022-06-20T08:28:22.816Z","2.4.0-alpha.3":"2022-06-20T11:36:52.213Z","2.4.0-feature-824fd5-l4mq47tq":"2022-06-20T12:40:12.281Z","2.4.0-feature-a6d2b4-l4nutspq":"2022-06-21T07:39:49.469Z","2.4.0-feature-2f81b5-l4nxm1h1":"2022-06-21T08:57:51.229Z","2.4.0-alpha.4":"2022-06-21T13:00:19.857Z","2.4.0-feature-8fc3b6-l4oa8jvk":"2022-06-21T14:51:49.668Z","3.0.0-feature-003c10-l4od81x5":"2022-06-21T16:14:48.625Z","2.4.0-beta.1":"2022-06-22T13:37:08.914Z","2.4.0-feature-bdbe98-l4pn5w93":"2022-06-22T13:40:49.710Z","3.0.0-feature-3e96fe-l4pniser":"2022-06-22T13:50:49.170Z","2.4.0-feature-d7018f-l4qwi4g6":"2022-06-23T10:50:07.061Z","2.4.0-feature-4806e9-l4s9flsq":"2022-06-24T09:41:04.106Z","2.4.0-alpha.5":"2022-06-27T14:54:36.744Z","2.4.0-feature-c150e4-l4xypc2h":"2022-06-28T09:26:50.383Z","2.4.0-feature-32ba36-l4y4nrvi":"2022-06-28T12:13:19.601Z","2.4.0-feature-f89fe9-l4y5nj7u":"2022-06-28T12:41:08.106Z","2.4.0-feature-3796fa-l4ybuh48":"2022-06-28T15:34:01.502Z","2.4.0-feature-f91285-l4yc71a9":"2022-06-28T15:43:47.236Z","2.4.0-alpha.6":"2022-06-29T07:52:15.161Z","2.4.0-feature-7caa05-l4zcvscm":"2022-06-29T08:50:45.756Z","2.4.0-feature-9c924d-l4ze99jq":"2022-06-29T09:29:31.671Z","2.4.0-feature-6472c2-l4zf795n":"2022-06-29T09:56:07.384Z","2.4.0-feature-b2c417-l4zfhh7z":"2022-06-29T10:03:36.104Z","2.4.0-feature-4847c8-l4zq7jto":"2022-06-29T15:04:21.402Z","2.4.0-alpha.7":"2022-06-30T08:32:02.650Z","3.0.0-feature-22fba0-l50rt6mg":"2022-06-30T08:36:58.182Z","2.4.0-beta.2":"2022-07-01T15:35:25.950Z","3.0.0-feature-159b1b-l52o25lo":"2022-07-01T16:27:22.916Z","2.4.0-feature-df64bb-l56hbwsk":"2022-07-04T08:29:40.907Z","2.4.0-feature-dc50f6-l56hxv3r":"2022-07-04T08:47:03.946Z","2.4.0-feature-d4b822-l5awnedm":"2022-07-07T10:49:40.988Z","2.4.0-feature-54eec1-l5b1vk07":"2022-07-07T13:16:54.934Z","2.4.0-feature-bc4439-l5b2cm2h":"2022-07-07T13:29:44.277Z","2.4.0-feature-3277a5-l5b3n1ka":"2022-07-07T14:05:20.252Z","2.4.0-beta.3":"2022-07-07T15:02:39.334Z","2.4.0-alpha.8":"2022-07-07T15:10:27.101Z","2.4.0-feature-5a17de-l5gh2pr8":"2022-07-11T08:20:51.557Z","2.4.0":"2022-07-12T09:50:27.284Z","2.4.0-feature-50af7d-l5jdonaz":"2022-07-13T09:08:35.209Z","2.4.0-feature-0e118d-l5qh7jfy":"2022-07-18T08:22:09.269Z","2.4.0-feature-df38cb-l5qrcqnz":"2022-07-18T13:06:04.676Z","2.4.0-feature-40c714-l5s0k0rq":"2022-07-19T10:11:12.272Z","2.4.0-feature-3c8115-l5s7yjun":"2022-07-19T13:38:51.119Z","3.0.0-feature-181804-l6amk41l":"2022-08-01T10:47:18.259Z","3.0.0-feature-614203-l6amwq19":"2022-08-01T10:56:33.802Z","3.0.0-feature-332ae3-l6apqqxm":"2022-08-01T12:15:59.137Z","3.0.0-feature-ea7aa4-l6aptyml":"2022-08-01T12:18:23.205Z","3.0.0-feature-ff6426-l6apyygn":"2022-08-01T12:22:17.775Z","3.0.0-feature-a1784f-l6aq6xee":"2022-08-01T12:28:55.346Z","3.0.0-feature-23f909-l6aqvfhf":"2022-08-01T12:47:56.374Z","3.0.0-alpha.1":"2022-08-03T12:38:23.828Z","3.0.0-beta.1":"2022-08-03T12:43:23.600Z","3.0.0-feature-395ec7-l6erf83d":"2022-08-04T08:14:22.747Z","3.0.0-feature-6f7e2a-l6g8stvb":"2022-08-05T09:08:14.065Z","3.0.0-feature-163215-l6kixzqh":"2022-08-08T09:03:56.766Z","3.0.0-feature-2d69d4-l6kjo81j":"2022-08-08T09:24:02.236Z","3.0.0-alpha.2":"2022-08-08T10:21:37.899Z","3.0.0-feature-06d8b8-l6lwc1t2":"2022-08-09T08:05:54.023Z","3.0.0-feature-6e35f8-l6lxb8c0":"2022-08-09T08:33:19.987Z","3.0.0-feature-06e6c0-l6ncakel":"2022-08-10T08:20:28.030Z","3.0.0-feature-f890e6-l6ncb7ay":"2022-08-10T08:20:55.584Z","3.0.0-beta.2":"2022-08-10T10:09:50.013Z","3.0.0-feature-38a940-l6p2vk43":"2022-08-11T13:32:21.401Z","3.0.0-feature-561067-l6p31kh8":"2022-08-11T13:37:05.340Z","3.0.0-feature-9566c4-l6q6nt26":"2022-08-12T08:06:09.488Z","3.0.0-feature-2877ee-l6q8dpq2":"2022-08-12T08:54:17.001Z","3.0.0-feature-5e13fa-l6qg79d6":"2022-08-12T12:33:42.561Z","3.0.0-feature-e6ae3b-l6qglga6":"2022-08-12T12:44:19.662Z","3.0.0-feature-714710-l6vteyyw":"2022-08-16T06:42:35.755Z","3.0.0-feature-ef8505-l6w3q1a2":"2022-08-16T11:31:08.636Z","3.0.0-alpha.3":"2022-08-16T11:37:48.381Z","3.0.0-feature-e4b3e3-l6xeyhgy":"2022-08-17T09:32:43.640Z","3.0.0-feature-4ac4c5-l6xhf5zj":"2022-08-17T10:41:44.745Z","3.0.0-alpha.4":"2022-08-17T11:24:46.024Z","3.0.0-beta.3":"2022-08-17T11:28:54.741Z","3.0.0-feature-dee7a4-l6xq9b1j":"2022-08-17T14:49:32.523Z","3.0.0-feature-2d47f5-l6z42jud":"2022-08-18T14:03:39.912Z","3.0.0-feature-c9446c-l6z4cg21":"2022-08-18T14:11:12.558Z","3.0.0-feature-9808c0-l6z4lsds":"2022-08-18T14:18:30.214Z","3.0.0-feature-a8f076-l707opcv":"2022-08-19T08:32:27.790Z","3.0.0-feature-9f5e62-l70ez205":"2022-08-19T11:56:27.400Z","3.0.0-feature-1ebc18-l74t4ex3":"2022-08-22T13:44:05.860Z","3.0.0-feature-c9446c-l75spcp3":"2022-08-23T06:19:40.146Z","3.0.0-feature-c9446c-l75swa99":"2022-08-23T06:25:37.151Z","3.0.0-feature-096326-l77cl873":"2022-08-24T08:24:05.138Z","3.0.0-feature-0e85bf-l77ie593":"2022-08-24T11:06:34.526Z","3.0.0-feature-8904d8-l77igjoq":"2022-08-24T11:08:26.731Z","3.0.0-feature-e0f3a6-l77lqmsz":"2022-08-24T12:40:57.685Z","3.0.0-feature-709d38-l77mtyyn":"2022-08-24T13:10:53.070Z","3.0.0-feature-cc275b-l77qgnyh":"2022-08-24T14:52:29.272Z","3.0.0-feature-23fc68-l78plgvk":"2022-08-25T07:15:59.936Z","3.0.0-feature-eb059c-l7fuamwi":"2022-08-30T07:02:42.564Z","3.0.0-feature-f893f4-l7fvcmd0":"2022-08-30T07:31:23.794Z","3.0.0-feature-f893f4-l7fw1wnk":"2022-08-30T07:51:11.937Z","3.0.0-feature-7047a1-l7fwhzre":"2022-08-30T08:04:30.054Z","3.0.0-feature-d84d85-l7fy70s6":"2022-08-30T08:51:18.453Z","3.0.0-alpha.5":"2022-08-30T08:55:01.112Z","3.0.0-feature-bfb6d6-l7fyoqjl":"2022-08-30T09:05:20.461Z","3.0.0-feature-388eef-l7g448ep":"2022-08-30T11:37:15.542Z","3.0.0-alpha.6":"2022-08-31T06:49:08.190Z","3.0.0-feature-c6cec7-l7h9va1e":"2022-08-31T07:05:36.256Z","3.0.0-feature-dbf3f2-l7hbouq1":"2022-08-31T07:57:17.128Z","3.0.0-feature-519288-l7hccfv4":"2022-08-31T08:15:20.321Z","3.0.0-alpha.7":"2022-08-31T12:06:56.053Z","3.0.0-beta.4":"2022-08-31T12:10:09.642Z","3.0.0-feature-6f8a0a-l7hky0rc":"2022-08-31T12:16:08.243Z","3.0.0-alpha.8":"2022-08-31T12:19:15.169Z","3.0.0-feature-e5babe-l7hl2p0t":"2022-08-31T12:20:05.435Z","3.0.0-feature-0bac7f-l7hmedmm":"2022-08-31T12:56:59.845Z","3.0.0-feature-322b7c-l7hmua2b":"2022-08-31T13:08:50.131Z","3.0.0-feature-43f677-l7hn2jxj":"2022-08-31T13:15:16.716Z","3.0.0-feature-4c6506-l7j28pbq":"2022-09-01T13:07:50.686Z","3.0.0-feature-e4e4bd-l7kfnn0m":"2022-09-02T12:11:00.867Z","3.0.0-feature-82f7d9-l7kgab5n":"2022-09-02T12:29:00.688Z","3.0.0-feature-500ff4-l7kglgqz":"2022-09-02T12:37:56.902Z","3.0.0-feature-ab35dc-l7kh6n4z":"2022-09-02T12:54:16.046Z","3.0.0-feature-f53742-l7ohry7o":"2022-09-05T08:21:24.428Z","3.0.0-feature-b947df-l7oidacc":"2022-09-05T08:38:28.749Z","3.0.0-feature-7b81d5-l7pw92ab":"2022-09-06T07:54:21.722Z","3.0.0-feature-04a7e1-l7pzof3g":"2022-09-06T09:30:44.516Z","3.0.0-feature-f02eeb-l7q025kx":"2022-09-06T09:41:00.341Z","3.0.0-feature-f48921-l7rczhbu":"2022-09-07T08:31:28.626Z","3.0.0-feature-3c9cb8-l7rdctvd":"2022-09-07T08:41:05.110Z","3.0.0-feature-3f5053-l7rfd8p3":"2022-09-07T09:37:48.862Z","3.0.0-alpha.9":"2022-09-08T09:26:15.847Z","3.0.0":"2022-09-08T10:25:06.388Z","3.0.0-feature-f76f9b-l7swo4en":"2022-09-08T10:29:28.489Z","3.1.0-alpha.1":"2022-09-08T10:37:13.245Z","3.1.0-feature-5ebd9a-l7sx9wkl":"2022-09-08T10:46:47.515Z","3.1.0-feature-e6479b-l7t5y4xx":"2022-09-08T14:49:49.888Z","3.1.0-feature-6228ae-l7t7fac7":"2022-09-08T15:29:55.084Z","3.1.0-feature-5c3a96-l7udpjk4":"2022-09-09T11:13:35.019Z","3.1.0-alpha.2":"2022-09-09T11:42:46.182Z","3.1.0-feature-cc8a96-l7ym6l9h":"2022-09-12T10:21:49.067Z","3.1.0-alpha.3":"2022-09-14T12:57:58.858Z","3.1.0-beta.1":"2022-09-14T14:05:06.754Z","3.1.0-feature-09fcbf-l8bl6rhy":"2022-09-21T12:15:11.760Z","3.1.0-feature-61d7a4-l8cwseqa":"2022-09-22T10:28:09.672Z","3.1.0-alpha.4":"2022-09-22T10:31:10.565Z","3.1.0-feature-90a006-l8lecdue":"2022-09-28T09:01:15.419Z","3.1.0-feature-8a6d80-l8lgzg6p":"2022-09-28T10:15:08.579Z","3.1.0-feature-c6dc6d-l8lhg1zs":"2022-09-28T10:28:03.219Z","3.1.0-feature-a19754-l8lhm1kx":"2022-09-28T10:32:44.161Z","3.1.0-feature-cf6b3d-l8lig9yr":"2022-09-28T10:56:31.244Z","3.1.0-feature-007d0c-l8lo3yfr":"2022-09-28T13:34:38.561Z","3.1.0-feature-d1dfd6-l8lp47r9":"2022-09-28T14:02:48.607Z","3.1.0-feature-5cb050-l8lpowd0":"2022-09-28T14:18:54.844Z","3.1.0-feature-45869b-l8lrannj":"2022-09-28T15:03:50.886Z","3.1.0-feature-762968-l8mtpjdk":"2022-09-29T08:59:14.923Z","3.1.0-feature-35f293-l8mtsa6w":"2022-09-29T09:01:16.506Z","3.1.0-feature-abdef3-l8o8syo9":"2022-09-30T08:49:28.330Z","3.1.0-feature-1a89e0-l8ofs0gs":"2022-09-30T12:04:44.560Z","3.1.0-feature-598bca-l92j6gp6":"2022-10-10T08:48:58.955Z","3.1.0-alpha.5":"2022-10-10T13:02:24.107Z","3.1.0-feature-c3226b-l92scbd4":"2022-10-10T13:05:22.267Z","3.1.0-alpha.6":"2022-10-12T07:18:28.458Z","3.1.0-feature-72e81d-l95b56lx":"2022-10-12T07:27:21.695Z","3.1.0-alpha.7":"2022-10-12T10:42:33.947Z","3.1.0-beta.2":"2022-10-12T10:46:01.428Z","3.1.0-alpha.8":"2022-10-12T11:22:58.694Z","3.1.0-beta.3":"2022-10-12T11:23:02.448Z","3.1.0-alpha.9":"2022-10-18T07:29:26.434Z","3.1.0-beta.4":"2022-10-19T07:12:40.845Z","3.1.0-feature-d68933-l9i7bpfc":"2022-10-21T08:01:08.345Z","3.1.0-feature-fc5cc3-l9i7c5hy":"2022-10-21T08:01:16.877Z","3.1.0-feature-252436-l9iafmcd":"2022-10-21T09:27:50.943Z","3.1.0-feature-3fc8d8-l9iemrmf":"2022-10-21T11:25:36.619Z","3.1.0-feature-3f2414-l9ifabrc":"2022-10-21T11:43:34.648Z","3.1.0-feature-145a46-l9mfvdnu":"2022-10-24T07:11:23.683Z","3.1.0-feature-c7a43a-l9mgjmp6":"2022-10-24T07:29:53.252Z","3.1.0-feature-82572f-l9mq8xuo":"2022-10-24T12:01:42.736Z","3.0.0-hotfix-26e82a-l9pn0d4e":"2022-10-26T12:55:20.623Z","3.0.0-hotfix-a6ef12-l9qtm3yt":"2022-10-27T08:48:13.184Z","3.0.0-hotfix-e8caf6-l9queu8t":"2022-10-27T09:10:03.776Z","3.0.0-hotfix-675c7b-l9s5ke27":"2022-10-28T07:10:32.221Z","3.0.1-hotfix-cabe11-l9set3ew":"2022-10-28T11:28:50.056Z","3.0.1":"2022-10-28T11:32:27.151Z","3.1.0-alpha.10":"2022-10-28T11:43:48.668Z","3.1.0-beta.5":"2022-10-28T11:44:20.448Z","3.1.0-feature-769c09-l9whs7xx":"2022-10-31T08:02:15.791Z","3.1.0-alpha.11":"2022-10-31T08:08:55.503Z","3.1.0-feature-f96378-l9zfkobg":"2022-11-02T09:23:53.027Z","3.1.0-feature-a5b498-la0u1z96":"2022-11-03T08:56:52.317Z","3.1.0-feature-e80b24-la0v3czk":"2022-11-03T09:25:58.114Z","3.1.0-beta.6":"2022-11-03T09:34:14.181Z","3.1.0-feature-48567c-la0vol5g":"2022-11-03T09:42:47.227Z","3.1.0-feature-6ecf04-la0wb2it":"2022-11-03T09:59:55.001Z","3.1.0-feature-8791a5-la28f4nd":"2022-11-04T08:26:45.783Z","3.1.0-feature-dbceb3-la2azf95":"2022-11-04T09:38:30.599Z","3.1.0-feature-a6372c-la2g0xj5":"2022-11-04T11:59:51.954Z","3.1.0-feature-4ec5de-la2me0hd":"2022-11-04T14:57:51.331Z","3.1.0-feature-4a8626-la6ipd2z":"2022-11-07T08:25:47.063Z","3.1.0-feature-804458-la6lwley":"2022-11-07T09:55:44.495Z","3.1.0-feature-bd526e-la6mdtql":"2022-11-07T10:08:52.303Z","3.1.0-alpha.12":"2022-11-08T08:02:57.053Z","3.1.0-feature-30ffdb-la8d9ld8":"2022-11-08T15:29:16.965Z","3.1.0-feature-393d34-la8dl5yc":"2022-11-08T15:38:02.903Z","3.1.0-feature-73aec3-la8dt641":"2022-11-08T15:44:16.800Z","3.1.0-feature-68ae3e-la8e90ao":"2022-11-08T15:56:49.533Z","3.1.0-feature-cd9fac-la8ejuq2":"2022-11-08T16:05:03.931Z","3.1.0-feature-a2a0d3-la8etmg2":"2022-11-08T16:12:39.112Z","3.1.0":"2022-11-09T07:42:04.974Z","3.2.0-alpha.1":"2022-11-09T07:46:12.049Z","3.1.0-feature-cdb705-la9d55ff":"2022-11-09T08:13:40.257Z","3.2.0-feature-3fc75c-laaxxbww":"2022-11-10T10:42:55.682Z","3.2.0-feature-d4b7af-laay0r4c":"2022-11-10T10:45:34.047Z","3.2.0-feature-96b7bf-lac8in3x":"2022-11-11T08:27:32.321Z","3.2.0-alpha.2":"2022-11-11T08:34:53.429Z","3.2.0-alpha.3":"2022-11-11T08:39:09.224Z","3.2.0-feature-2406f2-laght1vq":"2022-11-14T07:58:22.715Z","3.2.0-feature-99cdde-lagupalv":"2022-11-14T13:59:20.134Z","3.2.0-feature-8667b5-lagus9jf":"2022-11-14T14:02:02.143Z","3.2.0-feature-e40010-laguy95n":"2022-11-14T14:06:19.438Z","3.2.0-feature-0e2f08-lagvqbfd":"2022-11-14T14:28:05.348Z","3.2.0-alpha.4":"2022-11-15T07:57:46.408Z","3.2.0-feature-33d000-lajcw2g9":"2022-11-16T08:04:25.332Z","3.2.0-feature-3fca8f-lajfijhu":"2022-11-16T09:18:10.296Z","3.2.0-alpha.5":"2022-11-21T09:24:37.534Z","3.2.0-feature-5d580d-las3xhlw":"2022-11-22T11:03:36.100Z","3.2.0-feature-0dee34-las7uzcv":"2022-11-22T12:53:31.187Z","3.2.0-alpha.6":"2022-11-24T08:34:35.494Z","3.2.0-alpha.7":"2022-11-24T08:38:08.535Z","3.2.0-beta.1":"2022-11-24T10:48:46.418Z","3.2.0-feature-744e44-lb0l15un":"2022-11-28T09:24:49.150Z","3.2.0-feature-171704-lb0lamec":"2022-11-28T09:32:18.970Z","3.2.0-feature-a1c606-lb28lv1y":"2022-11-29T13:12:10.699Z","3.2.0-feature-2cdb98-lb2conip":"2022-11-29T15:06:36.730Z","3.2.0-alpha.8":"2022-11-30T11:04:10.097Z","3.2.0-beta.2":"2022-11-30T13:03:28.042Z","3.2.0-feature-d71eb4-lb4tirxr":"2022-12-01T08:33:51.744Z","3.2.0-feature-8304fa-lb4tnswg":"2022-12-01T08:37:04.947Z","3.2.0-feature-e67144-lbb4glwy":"2022-12-05T18:26:07.942Z","3.2.0-feature-583ce8-lbb5eb73":"2022-12-05T18:52:19.456Z","3.2.0-feature-c38c81-lbb70oad":"2022-12-05T19:38:03.553Z","3.2.0-feature-84ce8c-lbbvpiwh":"2022-12-06T07:08:49.405Z","3.2.0-feature-84ce8c-lbbz0lmt":"2022-12-06T08:41:48.775Z","3.2.0-feature-03b5a1-lbbz2dzs":"2022-12-06T08:43:18.496Z","3.2.0-feature-8db062-lbgmx09n":"2022-12-09T15:02:02.390Z","3.2.0-feature-9696f3-lbgnhmv1":"2022-12-09T15:17:36.663Z","3.2.0-feature-f70cd9-lbknl4d8":"2022-12-12T10:31:22.052Z","3.2.0-feature-baced0-lbnfqmh2":"2022-12-14T09:15:02.769Z","3.2.0-feature-5e2041-lbnguhce":"2022-12-14T09:46:20.020Z","3.2.0-feature-a02170-lbnkmpbz":"2022-12-14T11:31:56.454Z","3.2.0-feature-4ffb00-lbnn87wm":"2022-12-14T12:45:16.227Z","3.2.0-feature-f44adc-lbnoflzf":"2022-12-14T13:18:23.791Z","3.2.0-feature-df07fa-lbnof1jh":"2022-12-14T13:18:34.866Z","3.2.0-feature-36317d-lbnpk2sw":"2022-12-14T13:49:57.474Z","3.2.0-beta.3":"2022-12-14T16:07:32.981Z","3.2.0-alpha.9":"2022-12-14T16:26:08.550Z","3.2.0-alpha.10":"2022-12-14T16:29:44.955Z","3.2.0-beta.4":"2022-12-15T13:13:03.739Z","3.2.0-alpha.11":"2023-01-10T07:55:57.455Z","3.2.0-alpha.12":"2023-01-10T08:01:31.961Z","3.2.0-alpha.13":"2023-01-10T11:04:38.372Z","3.2.0-alpha.14":"2023-01-10T11:27:03.743Z","3.2.0-beta.5":"2023-01-10T13:32:29.723Z","3.2.0":"2023-01-10T13:36:18.408Z","3.3.0-alpha.1":"2023-01-10T13:40:01.103Z","3.2.1":"2023-01-10T14:23:14.297Z","3.3.0-alpha.2":"2023-01-10T14:27:22.116Z","3.3.0-feature-f10837-lcrmds9t":"2023-01-11T12:12:09.061Z","3.3.0-develop-9191af-lct30u7r":"2023-01-12T12:45:21.731Z","3.3.0-alpha.3":"2023-01-12T12:48:33.981Z","3.2.1-hotfix-63ef29-ld4a88xy":"2023-01-20T08:52:27.301Z","3.3.0-develop-e3c946-ld4k4qc9":"2023-01-20T13:30:00.646Z","3.2.1-hotfix-310800-ld4kbc7w":"2023-01-20T13:35:05.948Z","3.2.2-hotfix-d96213-ld4kpxt8":"2023-01-20T13:46:32.408Z","3.2.2":"2023-01-20T14:06:29.742Z","3.3.0-develop-85b3db-ld4p2tr9":"2023-01-20T15:48:13.725Z","3.3.0-alpha.4":"2023-01-20T15:48:33.920Z","3.2.3-hotfix-31d21c-ldbjyrfj":"2023-01-25T10:59:28.630Z","3.2.3":"2023-01-25T14:12:49.565Z","3.3.0-develop-d2dfb1-ldbqzq0j":"2023-01-25T14:16:12.728Z","3.3.0-alpha.5":"2023-01-27T08:03:04.191Z","3.3.0-develop-435866-ldithtlv":"2023-01-30T13:01:10.786Z","3.3.0-develop-8444e2-ldiup13t":"2023-01-30T13:34:33.238Z","3.3.0-develop-6b9e14-ldsmlsmo":"2023-02-06T09:45:28.176Z","3.3.0-develop-ca8960-ldsmnq9w":"2023-02-06T09:47:37.817Z","3.2.4":"2023-02-09T08:20:26.108Z","3.3.0-develop-192295-ldwu1sce":"2023-02-09T08:25:38.915Z","3.3.0-alpha.6":"2023-02-09T08:29:04.320Z","3.2.5-release-764dc4-lemo5hg6":"2023-02-27T10:22:30.421Z","3.2.5-feature-1e4b3d-lemo5ncz":"2023-02-27T10:22:54.351Z","3.2.5-feature-996d2d-lemqcvvi":"2023-02-27T11:23:50.005Z","3.2.5-feature-df1ebf-lemr221g":"2023-02-27T11:43:15.724Z","3.2.5":"2023-03-01T09:34:00.660Z","3.3.0-develop-39e2b5-lephfjqv":"2023-03-01T09:37:13.303Z","3.3.0-alpha.7":"2023-03-01T09:42:21.117Z","3.3.0-develop-0f076a-lephql86":"2023-03-01T09:45:36.649Z","3.3.0-feature-4bbaea-lezpztxs":"2023-03-08T13:34:28.858Z","3.3.0-feature-695a0c-lezq00gf":"2023-03-08T13:34:52.852Z","3.3.0-feature-374d40-lezq5y62":"2023-03-08T13:39:16.735Z","3.3.0-feature-7ac499-lezqe9xq":"2023-03-08T13:46:01.084Z","3.3.0-feature-0cd937-lezqfid4":"2023-03-08T13:46:38.516Z","3.3.0-develop-20f2e9-lf0vs0g2":"2023-03-09T09:04:10.552Z","3.3.0-alpha.8":"2023-03-09T10:34:10.377Z","3.3.0-develop-11245f-lf105hea":"2023-03-09T11:06:32.704Z","3.3.0-feature-96a39a-lf6lp1mo":"2023-03-13T09:08:47.428Z","3.2.6-hotfix-b55ea8-lf8icsmb":"2023-03-14T17:10:33.065Z","3.2.6-hotfix-ac0e13-lf9fbrb5":"2023-03-15T08:33:30.357Z","3.2.6":"2023-03-16T09:37:30.152Z","3.3.0-alpha.9":"2023-03-16T09:40:50.071Z","3.3.0-develop-698a2b-lfax9oon":"2023-03-16T09:43:34.680Z","3.3.0-feature-dcc56b-lfcjrwqf":"2023-03-17T13:01:48.674Z","3.3.0-feature-7d8f32-lfgjz76v":"2023-03-20T08:18:50.684Z","3.3.0-feature-fdaa8f-lfgpeoui":"2023-03-20T10:50:26.148Z","3.3.0-feature-eb27ac-lfl2my58":"2023-03-23T12:11:35.356Z","3.3.0-develop-1b8dc3-lfqs0zp8":"2023-03-27T12:01:45.440Z","3.3.0-feature-3d9484-lfqxdmzq":"2023-03-27T14:31:19.549Z","3.3.0-feature-842b42-lfv0xzoa":"2023-03-30T11:22:12.512Z","3.3.0-develop-06dc6a-lfv1c5fv":"2023-03-30T11:33:02.077Z","3.3.0-alpha.10":"2023-03-30T11:37:40.529Z","3.3.0-develop-f82f23-lfv1tmg0":"2023-03-30T11:46:25.713Z","3.3.0-develop-380078-lfv1u98q":"2023-03-30T11:47:31.826Z","3.3.0-develop-f9ce88-lgmb4xrw":"2023-04-18T13:36:58.601Z","3.3.0-develop-f202eb-lgmbagf0":"2023-04-18T13:41:08.205Z","3.3.0-develop-e3748f-lgndsvh1":"2023-04-19T07:39:49.957Z","3.3.0-develop-f5b69d-lgndwsva":"2023-04-19T07:42:22.307Z","3.3.0-develop-fe7aa3-lgnhn7v2":"2023-04-19T09:26:58.348Z","3.3.0-feature-0d3021-lgnv9nf7":"2023-04-19T15:48:14.994Z","3.3.0-develop-6e48fe-lgqbyeu5":"2023-04-21T09:10:59.355Z","3.3.0-alpha.11":"2023-04-21T10:16:52.207Z","3.3.0-beta.1":"2023-04-21T10:21:24.602Z","3.3.0-feature-6e96e7-lgyuezln":"2023-04-27T08:09:54.058Z","3.3.0-develop-a2e202-lh0a3bbx":"2023-04-28T08:16:28.189Z","3.3.0-beta.2":"2023-04-28T08:17:51.059Z","3.3.0-feature-6d6ae5-lhi054vg":"2023-05-10T17:58:08.808Z","3.3.0-feature-ab80f3-lhkbm4w6":"2023-05-12T08:54:45.133Z","3.3.0-feature-2d410a-lhpwxow9":"2023-05-16T06:50:02.801Z","3.3.0-feature-546aaf-lhpwygjr":"2023-05-16T06:50:44.019Z","3.3.0-feature-999b7d-lhpzn47k":"2023-05-16T08:06:07.457Z","3.3.0-feature-2d410a-lhq0c4k7":"2023-05-16T08:25:17.136Z","3.3.0-feature-999b7d-lhq0lf4e":"2023-05-16T08:32:29.589Z","3.3.0-feature-63aca2-lhq16lvs":"2023-05-16T08:48:58.197Z","3.3.0-feature-7d9bcd-lhrg3xhw":"2023-05-17T08:34:34.216Z","3.3.0-develop-47af98-lhru6nts":"2023-05-17T15:09:10.246Z","3.3.0-beta.3":"2023-05-19T07:25:36.126Z","3.3.0-develop-72b83a-li1e0i7r":"2023-05-24T07:34:15.095Z","3.3.0-develop-36baa3-li1e1cs3":"2023-05-24T07:34:44.974Z","3.3.0-beta.4":"2023-05-25T14:25:21.565Z","3.3.0-develop-3b8db4-li38ac0m":"2023-05-25T14:28:49.955Z","3.3.0":"2023-05-30T09:00:06.155Z","3.4.0-alpha.1":"2023-05-30T09:11:49.265Z","3.4.0-develop-61bc3b-lia269ca":"2023-05-30T09:12:32.525Z","3.4.0-develop-6ee175-lity0iuq":"2023-06-13T07:11:00.589Z","3.4.0-develop-fd6c73-lity216m":"2023-06-13T07:12:41.864Z","3.4.0-develop-ea9fcd-liu52rwo":"2023-06-13T10:28:53.131Z","3.3.2-hotfix-5e5851-ll1zhz20":"2023-08-08T07:34:20.997Z","3.3.2-hotfix-45145c-ll6eox3r":"2023-08-11T09:50:37.172Z","3.3.2-hotfix-2db911-ll6eu3th":"2023-08-11T09:54:56.109Z","3.3.2-patch-5b0ca3-ll6ey381":"2023-08-11T09:58:03.466Z","3.3.2-hotfix-54ef7e-llaujn4m":"2023-08-14T12:25:55.655Z","3.3.2-hotfix-5a9708-llc45axh":"2023-08-15T09:42:03.827Z","3.3.2":"2023-08-15T16:10:33.439Z","3.3.3-feature-4f1709-llkn84ts":"2023-08-21T08:58:22.939Z","3.3.3-feature-b69df4-llkqfucc":"2023-08-21T10:28:53.239Z","3.3.3-feature-1d9bb4-llm9dzvw":"2023-08-22T12:06:31.338Z","3.3.3":"2023-08-22T12:40:31.982Z","3.3.4-hotfix-09d073-llz1xw0f":"2023-08-31T10:59:16.493Z","3.3.4-hotfix-ea5bc4-llz2bd0e":"2023-08-31T11:08:43.957Z","3.3.4":"2023-09-04T12:07:15.870Z","3.4.0-release-0c0aa5-loina0d0":"2023-11-03T13:22:35.282Z","3.4.0-feature-018a32-loinb08v":"2023-11-03T13:23:32.469Z"},"bugs":{"url":"https://github.com/atlas-engine/AtlasEngine.SDK/issues"},"author":{"url":"https://5minds.de/","name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"MIT","homepage":"https://github.com/atlas-engine/AtlasEngine.SDK#readme","repository":{"url":"git+https://github.com/atlas-engine/AtlasEngine.SDK.git","type":"git"},"description":"Software development kit for the Engine.","maintainers":[{"email":"alex@kasten.pw","name":"alexanderkasten"},{"email":"sebastian.griesa@5minds.de","name":"s3bastiangriesa5minds"}],"readme":"","readmeFilename":""}